ITPub博客

首页 > 数据库 > Oracle > Oracle存储过程干货(五):存储过程中怎么存多个列的值

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

原创 Oracle 作者:a960549548 时间:2024-03-11 15:30:01 0 删除 编辑

记录,也就是 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;

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013625/viewspace-3008626/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: exp备份脚本
请登录后发表评论 登录
全部评论
Oracle ACE,MySQL 8.0 OCP,PMP,拥有OceanBase OBCP,TiDB PCTP,GoldenDB GDCP等多项认证,ITPUB认证专家,微信公众号:DBA之友。

注册时间:2022-02-08

  • 博文量
    132
  • 访问量
    171511