ORACELの標準開発ツールである SQL Developerを使い、ORACLE ストアドプロシージャ(PL/SQL)を作成する例を作成しました。
Selectするプロシージャ
Insertするプロシージャ
バージョン
ORACLE DB:Oracle Database 12c Standard Edition Release 12.1.0.2.0 – 64bit Production
SQL Developer:21.2.1.204 ビルド 204.1703
ストアドプロシージャ定義
今回作成したストアドプロシージャは、table1テーブルを単純にSelect/Insertしているだけです。
ストアドプロシージャのCREATE文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
CREATE OR REPLACE PROCEDURE SP_TABLE1_SELECT AS c1 SYS_REFCURSOR; BEGIN open c1 for SELECT id, code, value_string, value_date FROM testuser1.table1; DBMS_SQL.RETURN_RESULT(c1); END; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
create or replace PROCEDURE SP_TABLE1_INSERT ( ID IN NUMBER, CODE IN VARCHAR2, VALUE_STRING IN VARCHAR2, VALUE_DATE IN DATE ) AS BEGIN INSERT INTO testuser1.table1( id, value_string, value_date, code ) VALUES ( ID, VALUE_STRING, VALUE_DATE, CODE ); END SP_TABLE1_INSERT; |
ストアドプロシージャの実行文
1 2 3 4 5 |
BEGIN SP_TABLE1_SELECT(); END; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
DECLARE ID NUMBER; CODE VARCHAR2(200); VALUE_STRING VARCHAR2(200); VALUE_DATE DATE; BEGIN ID := 10; CODE := '11'; VALUE_STRING := '12'; VALUE_DATE := sysdate; SP_TABLE1_INSERT( ID => ID, CODE => CODE, VALUE_STRING => VALUE_STRING, VALUE_DATE => VALUE_DATE ); --rollback; END; |
コメント