plsql 储存过程 参数的传递方式?
/* 存储过程 一.oracel存储过程 1、没有返回值 return 值; 2、用输出参数来代替返回值; 3、输出参数可以有多个 二.参数的传递方式 1. 按位置传递 2. 按名字传递 3.混合传递 --按照位置传递,再按照名字传递 */ select * from emp; call re4(3,4); create or replace procedure re6 ( id1 in number, id2 in number, name1 in emp.ename%type, name2 in emp.ename%type, n1 out number -- 需要返回一个参数么? ) as begin insert into emp (empno,ename,sal) values (id1,name1,5000); insert into emp (empno,ename,sal) values (id2,name2,5000); commit; select count(*) into n1 from emp; end; declare v_count number(2);-- oracle 没有返回值 用输出参数来定义。 begin re6(1,2,\'haha\',\'xixi\',v_count); dbms_output.put_line(\'总记录数\'||v_count); end; -- 1. 按位置传递 declare v_count number(2); begin re6(3,4,\'jiji\',\'baba\',v_count); -- 1. 按位置传递 dbms_output.put_line(v_count); end; -- 2.名字传递参数 无序 declare v_count number(2); begin -- 2.名字传递参数 无序 re6(name1=>\'张三\',name2=>\'李四\',id1=>8,id2=>9, n1=>v_count); dbms_output.put_line(v_count); end; select *from emp; call re4(1,2); call re4(3,4); -- 混合传递 declare v_count number(2); begin re6(1,2,name1=>\'狼王\',name2=>\'兔子\',n1=>v_count); --按照位置传递,再按照名字传递 dbms_output.put_line(\'总数量:\'||v_count); end; select * from emp;