在plsql中,存儲過程中的out模式的參數可以用來返回數據,相當於函數的返回值。下面是一個小例子。
沿用上一篇的emp表結構和數據。
存儲過程如下:
create or replace procedure out_test(v_user in emp.user_name%type, v_salary out emp.salary%type, v_deptno out emp.emp_deptno%type) as begin select salary, emp_deptno into v_salary, v_deptno from emp where user_name = v_user; exception when NO_DATA_FOUND then dbms_output.put_line('No data found'); when TOO_MANY_ROWS then dbms_output.put_line('Too many rows found'); end out_test;
在命令行中調用該存儲過程,利用綁定變量
SQL> var v_user varchar2(20); SQL> var v_salary number; SQL> var v_deptno number; SQL> exec :v_user := 'Lisi'; PL/SQL procedure successfully completed v_user --------- Lisi SQL> exec out_test(:v_user, :v_salary, :v_deptno); PL/SQL procedure successfully completed v_user --------- Lisi v_salary --------- 11500 v_deptno --------- 20
這是在plsql developer下運行的結果,這個工具是一個很好的oracle的可視化編程工具。