Oracle存储过程干货(五):存储过程中怎么存多个列的值

来源:这里教程网 时间:2026-03-03 19:40:03 作者:

记录,也就是 record ,在 PLSQL 中用于存多个列或一个列,但只能存一行,多行必须游标 + 循环,其中有两个重要的东西联动:

 

%rowtype ,用于查所有列,也就是 select *

---%rowtype 的使用,存所有的列 ---

declare
  v_emp emp%rowtype; /*%左边的emp指的是表*/
begin
  select * into v_emp from emp where empno = 7369;
  dbms_output.put_line(v_emp.ename || ' ' || v_emp.sal);
end;

 

%type ,用于查指定的列

---%type 的使用,用于存指定的列 ---

declare
  v_name emp.ename%type;
  v_sal  emp.sal%type;
begin
  select ename, sal into v_name, v_sal from emp where empno = 7369;
  dbms_output.put_line(v_name || '  ' || v_sal);
end;

 

他们两者不像之前需要自己临时在 PLSQL 中定义数据类型,而是直接沿用的数据库中列的数据类型。

 

 

那么怎么才能不要 select * ,又能方便点把需要的列放一起呢,引用出了 record

---%type record 的联动使用 ---

declare
  type ename_sal is record(
    ename emp.ename%type,
    sal   emp.sal%type);
  v_ename_sal ename_sal;
begin
  select ename, sal into v_ename_sal from emp where empno = 7369;
  dbms_output.put_line(v_ename_sal.ename || ' ' || v_ename_sal.sal);
end;

 

相关推荐