開発者ドキュメント

OracleストアドプロシージャHello Worldの例

Oracleデータベースのストアド・プロシージャ(IN、OUT、IN OUTおよびCursorパラメータ)を作成するための簡単な例のリスト。 PL/SQLコードは自明です。

1. Hello World

DBMS__OUTPUTを介して “Hello World”を出力するストアド・プロシージャ。

CREATE OR REPLACE PROCEDURE procPrintHelloWorld
IS
BEGIN

  DBMS__OUTPUT.PUT__LINE('Hello World!');

END;/....

それを実行します

exec procPrintHelloWorld;

出力

Hello World!

===  2. Hello World + INパラメータ

単一のパラメータを受け取り、DBMS__OUTPUTを介して「Hello World INパラメータ」パラメータ値を出力するストアド・プロシージャ。

CREATE OR REPLACE PROCEDURE procOneINParameter(param1 IN VARCHAR2)
IS
BEGIN

DBMS__OUTPUT.PUT__LINE('Hello World IN parameter ' || param1);

END;/…​.

それを実行します

exec procOneINParameter('mkyong');

出力

Hello World IN parameter mkyong

3. Hello World OUTパラメータ

OUTパラメータに “Hello World OUTパラメータ”値を出力/割り当てするためのストアドプロシージャ。

CREATE OR REPLACE PROCEDURE procOneOUTParameter(outParam1 OUT VARCHAR2)
IS
BEGIN

  outParam1 := 'Hello World OUT parameter';

END;/....

それを実行します

DECLARE
outParam1 VARCHAR2(100);
BEGIN
procOneOUTParameter(outParam1);
DBMS

OUTPUT.PUT

LINE(outParam1);
END;/…​.

出力

Hello World OUT parameter

4. Hello World INOUTパラメータ

INOUTパラメーター(genericParam)を受け入れ、出力メッセージを構成し、同じパラメーター名(genericParam)に再度割り当てるストアード・プロシージャー。

CREATE OR REPLACE PROCEDURE procOneINOUTParameter(genericParam IN OUT VARCHAR2)
IS
BEGIN

  genericParam := 'Hello World INOUT parameter ' || genericParam;

END;/....

それを実行します

DECLARE
genericParam VARCHAR2(100) := ‘mkyong’;
BEGIN
procOneINOUTParameter(genericParam);
DBMS

OUTPUT.PUT

LINE(genericParam);
END;/…​.

出力

Hello World INOUT parameter mkyong

5. Hello World + Cursor

ストアドプロシージャ、参照カーソルを返し、INパラメータを受け入れます。

CREATE OR REPLACE PROCEDURE procCursorExample(
cursorParam OUT SYS__REFCURSOR, userNameParam IN VARCHAR2)
IS
BEGIN

  OPEN cursorParam FOR
  SELECT **  FROM DBUSER WHERE USERNAME = userNameParam;

END;/....

それを実行します

DECLARE
dbUserCursor SYS__REFCURSOR;
dbUserTable DBUSER%ROWTYPE;
BEGIN

procCursorExample(dbUserCursor,'mkyong');
LOOP
FETCH dbUserCursor INTO dbUserTable;
EXIT WHEN dbUserCursor%NOTFOUND;
dbms__output.put__line(dbUserTable.user__id);
END LOOP;
CLOSE dbUserCursor;

END;/…​.

出力

List of the user__id which matched username='mkyong'
モバイルバージョンを終了