oralce 存储过程传入 record 类型的参数?
先定义一个 package , package中含有一个 record 类型的变量
create or replace package pkg_record is type emp_record is record( ename emp.ename%type, eno emp.empno%type ); end pkg_record;
定义一个存储过程
create or replace procedure pro_add_emp(v_emp_rcd in out pkg_record.emp_record) is begin v_emp_rcd.ename := 'xxxxx'; v_emp_rcd.eno := 2222; end pro_add_emp;
在 pl sql 中调用该存储过程
declare emp_rcd pkg_record.emp_record; begin select e.ename,e.empno into emp_rcd from emp e where rownum = 1; dbms_output.put_line('调用前...' || emp_rcd.ename || ' ' || emp_rcd.eno); pro_add_emp(emp_rcd); dbms_output.put_line('调用后...' || emp_rcd.ename || ' ' || emp_rcd.eno); end;
执行结果: DBMS output 调用前...SMITH 7369 调用后...xxxxx 2222