以下は、INOUTパラメータを使用したOracleのストアドプロシージャの例です。 INパラメータとして従業員番号(i_empno)を取り、OUTパラメータとして従業員名(o_ename)を返します。
ストアドプロシージャのIN-OUTパラメータの例
CREATE OR REPLACE PROCEDURE GET_EMP_NAME (i_empno IN emp.empno%TYPE, o_ename OUT emp.ename%TYPE) IS CURSOR c_ename (p_empno emp.empno%TYPE) IS SELECT ename FROM emp WHERE empno = p_empno; BEGIN OPEN c_ename (i_empno); FETCH c_ename INTO o_ename; CLOSE c_ename; END get_emp_name;
プロシージャGET_EMP_NAMEの実行
SET SERVEROUTPUT ON; DECLARE v_name emp.ename%TYPE; BEGIN get_emp_name (7566, v_name); DBMS_OUTPUT.put_line (v_name); END;
出力
JONES PL/SQL procedure successfully completed.