「Oracle19c」 プロシージャに入力項目にデフォルト値をセットするサンプル

oracleバージョン

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

構文
create or replace procedure プロシージャ名(
変数名 IN データの型 default 値,
defaultを使って入力項目にデフォルト値をセットします。

使用例
1.プロシージャを作成します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> create or replace procedure TESTPROC(
2 uno IN number default 345,
3 city IN varchar2 default 'tokyo'
4 )IS
5 BEGIN
6 dbms_output.put_line('uno = ' || uno);
7 dbms_output.put_line('city = '|| city);
8 END;
9 /
プロシージャが作成されました。
SQL> create or replace procedure TESTPROC( 2 uno IN number default 345, 3 city IN varchar2 default 'tokyo' 4 )IS 5 BEGIN 6 dbms_output.put_line('uno = ' || uno); 7 dbms_output.put_line('city = '|| city); 8 END; 9 / プロシージャが作成されました。
SQL> create or replace procedure TESTPROC(
  2    uno      IN   number   default 345,
  3    city  IN   varchar2 default 'tokyo'
  4  )IS
  5  BEGIN
  6  dbms_output.put_line('uno = '    || uno);
  7      dbms_output.put_line('city = '|| city);
  8  END;
  9  /

プロシージャが作成されました。

2.デフォルト値は、defaultの後に値を指定します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
値がない場合はデフォルト値になります。
プロシージャを実行します
値がない場合はデフォルト値になります。 プロシージャを実行します
値がない場合はデフォルト値になります。
プロシージャを実行します

2.1 プロシージャTESTPROCに引数なしの場合

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> set serveroutput on
SQL> execute TESTPROC();
uno = 345
city = tokyo
PL/SQLプロシージャが正常に完了しました。
SQL> set serveroutput on SQL> execute TESTPROC(); uno = 345 city = tokyo PL/SQLプロシージャが正常に完了しました。
SQL> set serveroutput on
SQL>  execute TESTPROC();
uno = 345
city = tokyo

PL/SQLプロシージャが正常に完了しました。

2.2 プロシージャTESTPROCに数値を渡します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> execute TESTPROC(678);
uno = 678
city = tokyo
PL/SQLプロシージャが正常に完了しました。
SQL> execute TESTPROC(678); uno = 678 city = tokyo PL/SQLプロシージャが正常に完了しました。
SQL>  execute TESTPROC(678);
uno = 678
city = tokyo

PL/SQLプロシージャが正常に完了しました。

2.3 プロシージャTESTPROCに引数に値を設定します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> execute TESTPROC(city=>'oosaka');
uno = 345
city = oosaka
PL/SQLプロシージャが正常に完了しました。
SQL> execute TESTPROC(city=>'oosaka'); uno = 345 city = oosaka PL/SQLプロシージャが正常に完了しました。
SQL> execute TESTPROC(city=>'oosaka');
uno = 345
city = oosaka

PL/SQLプロシージャが正常に完了しました。

 

Oracle 19c

Posted by arkgame