Пример хранимой процедуры Oracle SELECT INTO
Вот пример хранимой процедуры SELECT INTO в базе данных Oracle.
1. Скрипт таблицы SQL
Скрипт создания таблицы DBUSER.
CREATE TABLE DBUSER ( USER_ID NUMBER (5) NOT NULL, USERNAME VARCHAR2 (20) NOT NULL, CREATED_BY VARCHAR2 (20) NOT NULL, CREATED_DATE DATE NOT NULL, PRIMARY KEY ( USER_ID ) )
2. Хранимая процедура
Хранимая процедура использует механизм SELECT INTO для присвоения совпадающих значений параметрам OUT.
CREATE OR REPLACE PROCEDURE getDBUSERByUserId(
p_userid IN DBUSER.USER_ID%TYPE,
o_username OUT DBUSER.USERNAME%TYPE,
o_createdby OUT DBUSER.CREATED_BY%TYPE,
o_date OUT DBUSER.CREATED_DATE%TYPE)
IS
BEGIN
SELECT USERNAME , CREATED_BY, CREATED_DATE
INTO o_username, o_createdby, o_date
from DBUSER WHERE USER_ID = p_userid;
END;
/
3. Звонки из PL / SQL
Звоните из PL / SQL следующим образом:
DECLARE
o_username DBUSER.USERNAME%TYPE;
o_createdby DBUSER.CREATED_BY%TYPE;
o_date DBUSER.CREATED_DATE%TYPE;
BEGIN
getDBUSERByUserId(1001,o_username,o_createdby,o_date);
DBMS_OUTPUT.PUT_LINE('username : ' || o_username);
DBMS_OUTPUT.PUT_LINE('createdby : ' || o_createdby);
DBMS_OUTPUT.PUT_LINE('createddate : ' || o_date);
END;
/
Result
Запись с userId = 1001 отображается через процедуру сохраненияgetDBUSERByUserId.