SQL*Plus でストアドプロシージャを実行する方法
文書番号:20236
SQL*Plus でストアドプロシージャを実行する方法です。
一時的な実行の確認や、バッチ実行したい際などに使用します。
【実行手順】
-
今回実行するストアドプロシージャを作成します。
OUT引数がないプロシージャを作成します。
CREATE OR REPLACE PROCEDURE SAMPLE1(
I_CODE IN VARCHAR2
,I_NAME IN VARCHAR2
)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('CODE:' || I_CODE);
DBMS_OUTPUT.PUT_LINE('NAME:' || I_NAME);
END;
/
SQL> EXECUTE SAMPLE1('0001','たろう');
CODE:0001
NAME:たろう
OUT引数があるプロシージャを作成します。
問い合わせ用のテーブルを作成します(実行確認用)
CREATE TABLE emp(
CODE CHAR(4)
,NAME VARCHAR2(50)
,CONSTRAINT PK_emp PRIMARY KEY (CODE)
)
/
INSERT INTO emp VALUES('0001','たろう');
INSERT INTO emp VALUES('0002','はなこ');
INSERT INTO emp VALUES('0003','のぶなが');
CREATE OR REPLACE PROCEDURE SAMPLE2(
I_CODE IN VARCHAR2
,O_NAME OUT VARCHAR2
)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('CODE:' || I_CODE);
SELECT NAME
INTO O_NAME
FROM emp
WHERE CODE = I_CODE;
END;
/
SQL> VARIABLE V_NAME VARCHAR2(10);
SQL> EXECUTE SAMPLE2('0002',:V_NAME);
CODE:0001
SQL> PRINT V_NAME;
V_NAME
------------------
はなこ