「Oracle」PL/SQLのストアドプロシージャにINとOUTを使用するサンプル

環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production
PL/SQL Release 11.2.0.1.0 – Production

構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
create or replace procedure ストアドプロシージャ名
(
変数1 IN varchar2,
変数2 OUT varchar2
)
create or replace procedure ストアドプロシージャ名 ( 変数1 IN varchar2, 変数2 OUT varchar2 )
create or replace procedure ストアドプロシージャ名
(
  変数1  IN  varchar2,
  変数2  OUT varchar2
)

使用例
1.プロシージャを作成します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> create or replace procedure TESTPROC
2 (
3 STRA IN varchar2,
4 STRB OUT varchar2
5 )
6 IS
7
8 BEGIN
9 STRB := STRA || 'become smart';
10 END;
11 /
プロシージャが作成されました。
SQL> create or replace procedure TESTPROC 2 ( 3 STRA IN varchar2, 4 STRB OUT varchar2 5 ) 6 IS 7 8 BEGIN 9 STRB := STRA || 'become smart'; 10 END; 11 / プロシージャが作成されました。
SQL> create or replace procedure TESTPROC
  2  (
  3    STRA  IN  varchar2,
  4    STRB  OUT varchar2
  5  )
  6  IS
  7
  8  BEGIN
  9    STRB := STRA || 'become smart';
 10  END;
 11  /

プロシージャが作成されました。

2.serverのoutputをonにします

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> set serveroutput on
SQL> set serveroutput on
SQL> set serveroutput on

3.出力の変数を定義します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> variable target varchar2(20)
SQL> variable target varchar2(20)
SQL> variable target varchar2(20)

4.引数1は入力で、引数2は出力です

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> execute TESTPROC('study skill',:target)
PL/SQLプロシージャが正常に完了しました。
SQL> execute TESTPROC('study skill',:target) PL/SQLプロシージャが正常に完了しました。
SQL> execute TESTPROC('study skill',:target)

PL/SQLプロシージャが正常に完了しました。

5.変数の値を取得します
書式
print 出力の変数

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> print target
TARGET
--------------------------------------------------------------------------------
study skillbecome sm
SQL> print target TARGET -------------------------------------------------------------------------------- study skillbecome sm
SQL> print target

TARGET
--------------------------------------------------------------------------------
study skillbecome sm

 

Oracle

Posted by arkgame