我们应该在哪里使用Oracle中的PL / SQL记录

时间:2013-07-05 08:31:30

标签: sql oracle plsql

PL / SQL记录的主要用途和用途是什么,我们应该在哪里使用 PL / SQL记录

    declare
  type locationRecordType is record (
   streetAddress       varchar2(40),
   postalCode          varchar2(12),
   city                 varchar2(30),
   stateProvince       varchar2(25),
   countryID           char(2) not null := 'US'
  );

 myLocation locationRecordType;
 begin
    myLocation.streetAddress := '4564 Culloden';
    myLocation.postalCode := '20190';
    myLocation.city := 'Regina';
    myLocation.stateProvince := 'SK';
    dbms_output.put_line( 'MY LOCATION IS:' );
    dbms_output.put_line( myLocation.streetAddress );
    dbms_output.put( myLocation.city||', '||myLocation.stateProvince )
    dbms_output.put_line( '  '||myLocation.postalCode );
    dbms_output.put_line( myLocation.countryID );
    end;

1 个答案:

答案 0 :(得分:2)

PL / SQL记录是复杂的可变数据类型。

如您所知,在PL / SQL中,我们的查询必须将SELECT转换为变量。如果查询是SELECT *,我们可以使用%ROWTYPE语法定义变量,例如

emp_rec emp%rowtype;

如果我们选择单个列,我们只需使用适当的数据类型定义变量,例如:对于SELECT COUNT(*),它将是

emp_cnt pls_integer;

但是假设我们的查询有更复杂的投影?假设表中只包含几列?或者在查询中加入了几个表中的一些列?在这种情况下,我们想要定义PL / SQL记录。

记录应始终填充SELECT,而不是您显示的分配。另一个警告是我们不能在诸如FORALL之类的DML语句中使用记录。如果你需要做其中任何一件事,你可能应该使用SQL类型。