「Oracle」PL/SQLのストアドプロシージャにreturnで処理を終了する

環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production
PL/SQL Release 11.2.0.1.0 – Production

構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE OR REPLACE PROCEDURE プロシージャ名
BEGIN
IF 条件式 THEN
処理コード
RETURN;
END IF;
END
CREATE OR REPLACE PROCEDURE プロシージャ名 BEGIN IF 条件式 THEN 処理コード RETURN; END IF; END
CREATE OR REPLACE PROCEDURE プロシージャ名
BEGIN
 IF 条件式 THEN
   処理コード
  RETURN;
  END IF;
END

returnを使用して、プロシージャの処理が終了します。
使用例
1.プロシージャを作成します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> CREATE OR REPLACE PROCEDURE TESTPROC
2 IS
3 cft NUMBER := 88;
4
5 BEGIN
6 IF (cft = 88) THEN
7 dbms_output.put_line('test abc');
8 RETURN;
9 END IF;
10 dbms_output.put_line('test def');
11 END;
12 /
プロシージャが作成されました。
SQL> CREATE OR REPLACE PROCEDURE TESTPROC 2 IS 3 cft NUMBER := 88; 4 5 BEGIN 6 IF (cft = 88) THEN 7 dbms_output.put_line('test abc'); 8 RETURN; 9 END IF; 10 dbms_output.put_line('test def'); 11 END; 12 / プロシージャが作成されました。
SQL> CREATE OR REPLACE PROCEDURE TESTPROC
  2  IS
  3    cft NUMBER := 88;
  4
  5  BEGIN
  6    IF (cft = 88) THEN
  7       dbms_output.put_line('test abc');
  8       RETURN;
  9    END IF;
 10    dbms_output.put_line('test def');
 11  END;
 12  /

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

2.プロシージャを実行します

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

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

 

Oracle

Posted by arkgame