Oracle 使用OUT参数创建/调用存储过程
发布时间:2020-12-12 14:58:58 所属栏目:百科 来源:网络整理
导读:1.OUT类型的参数由存储过程传入值,然后由用户接受参数值。下面通过SCOTT.EMP表创建一个搜索过程,该过程将根据所提供的EMPNO列的值检索雇员的ENAME和SAL SQL create or replace procedure search_employee( 2 empno_param in number,3 name_param out emp.e
1.OUT类型的参数由存储过程传入值,然后由用户接受参数值。下面通过SCOTT.EMP表创建一个搜索过程,该过程将根据所提供的EMPNO列的值检索雇员的ENAME和SAL
SQL> create or replace procedure search_employee( 2 empno_param in number,3 name_param out emp.ename%type,4 salary_param out emp.ename%type) is 5 begin 6 select ename,sal 7 into name_param,salary_param 8 from scott.emp 9 where empno=empno_param; 10 exception 11 when no_data_found then 12 name_param:='NULL'; 13 salary_param:=-1; 14 dbms_output.put_line('未找到指定编号的员工信息!'); 15 end search_employee; 16 / 过程已创建。 #使用VARIABLE命令绑定参数值,并调用存储过程SEARCH_EMPLOYEE
SQL> variable name varchar2(10); SQL> variable sal number; SQL> exec search_employee(7499,:name,:sal); PL/SQL 过程已成功完成。 #使用print命令显示变量值
SQL> print name NAME -------------------------------- ALLEN SQL> print sal SAL ---------- 1600 #使用SELECT语句检索绑定的变量值
SQL> select :name,:sal 2 from dual; :NAME :SAL -------------------------------- ---------- ALLEN 1600 #在匿名程序块中调用存储过程SEARCH_EMPLOYEE
SQL> set serverout on SQL> declare 2 name emp.ename%type; 3 sal emp.sal%type; 4 begin 5 search_employee(7499,name,sal); 6 dbms_output.put('姓名:' || name); 7 dbms_output.put_line('薪金:' || sal); 8 end; 9 / 姓名:ALLEN薪金:1600 PL/SQL 过程已成功完成。 # 调用具有OUT参数过程中,未对OUT参数提供变量
SQL> set serverout on SQL> declare 2 name emp.ename%type; 3 begin 4 search_employee(7499,1200); 5 end; 6 / search_employee(7499,1200); * 第 4 行出现错误: ORA-06550: 第 4 行,第 29 列: PLS-00363: 表达式 '1200' 不能用作赋值目标 ORA-06550: 第 4 行,第 3 列: PL/SQL: Statement ignored (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |