Хранимые процедуры Oracle Примеры Hello World

Примеры хранимых процедур Oracle Hello World

Список быстрых примеров для создания хранимых процедур (IN, OUT, IN OUT и параметр Cursor) в базе данных Oracle. PL/SQL code is self-explanatory.

1. Привет, мир

Хранимая процедура для распечатки «Hello World» через DBMS_OUTPUT.

CREATE OR REPLACE PROCEDURE procPrintHelloWorld
IS
BEGIN

  DBMS_OUTPUT.PUT_LINE('Hello World!');

END;
/

Запустить его

exec procPrintHelloWorld;

Выход

Hello World!

2. Hello World + параметр IN

Хранимая процедура, принимающая один параметр и распечатывающая параметр «Hello World IN» + значение параметра через DBMS_OUTPUT.

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

  DBMS_OUTPUT.PUT_LINE('Hello World IN parameter ' || param1);

END;
/

Запустить его

exec procOneINParameter('example');

Выход

Hello World IN parameter example

3. Hello World + параметр OUT

Хранимая процедура для вывода / присвоения значения «Hello World OUT parameter» параметру 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) := 'example';
BEGIN
  procOneINOUTParameter(genericParam);
  DBMS_OUTPUT.PUT_LINE(genericParam);
END;
/

Выход

Hello World INOUT parameter example

5. Hello World + Курсор

Хранимая процедура, верните указатель ссылки и примите параметр 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,'example');

  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='example'