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;
答案 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类型。