PL/SQL 简单选择记录变量

Tom*_*más 2 sql select plsql record data-structures

我已经声明了一个记录变量:

Declare
TYPE WORK_REC IS RECORD(
STRING1  VARCHAR (21),  
NUMBER1  NUMBER  (05)
);
TARGET_REC WORK_REC;
...
Run Code Online (Sandbox Code Playgroud)

在某个时刻,我得到两个值,我必须将它们移至记录变量中。是否可以像这样使用单个 SELECT INTO ?

SELECT (<PROPER STRING VALUE> , <PROPER NUMBER VALUE> ) INTO TARGET_REC 
Run Code Online (Sandbox Code Playgroud)

这里的重点是我想以一种简单的维护方式来填写我的记录。

Bel*_*yer 5

是的,你可以这么做。只要所选的列在数量和类型上都与目标变量匹配。

create table rec_test( s1 varchar2(21), n1 number(5));
insert into rec_test (s1,n1) values('ABC',2) ;

declare 
  type work_rec is record(
       string1  varchar2 (21),  
       number1  number  (05)
       );
  target_rec work_rec;
begin
  select s1, n1
    into target_rec 
    from rec_test;

  dbms_output.put_line( 'rec=(' || target_rec.string1 || ',' || target_rec.number1 || ')' ); 
end ; 
Run Code Online (Sandbox Code Playgroud)