Plsql 将变量定义为记录属性pl/sql的类型
假设我在PL/SQL中有以下代码片段:Plsql 将变量定义为记录属性pl/sql的类型,plsql,Plsql,假设我在PL/SQL中有以下代码片段: type my_record is record( CUST_ID number(7); CUST_NAME varchar2(200); ); 现在我想声明一个变量,它的类型与cust\u name相同: my_title my_record.cust_name%type; 这就是我尝试过的,我得到错误“PLS-00206:%TYPE必须应用于变量、列、字段或属性……我相信我正在做Oracle文档显示的事情 我不希望硬编码变量类型
type my_record is record(
CUST_ID number(7);
CUST_NAME varchar2(200);
);
现在我想声明一个变量,它的类型与cust\u name
相同:
my_title my_record.cust_name%type;
这就是我尝试过的,我得到错误“PLS-00206:%TYPE必须应用于变量、列、字段或属性……我相信我正在做Oracle文档显示的事情
我不希望硬编码变量类型,因为在CUST_NAME类型发生变化的情况下 创建记录类型的变量。并将
%type
应用于此变量
DECLARE
type my_record is record(
CUST_ID number(7),
CUST_NAME varchar2(200)
);
myRec my_record;
my_title myRec.cust_name%type;
BEGIN
NULL;
END;
创建记录类型的变量。并将
%type
应用于此变量
DECLARE
type my_record is record(
CUST_ID number(7),
CUST_NAME varchar2(200)
);
myRec my_record;
my_title myRec.cust_name%type;
BEGIN
NULL;
END;
请参阅文章的第一行,您已发布。 其内容如下:“通过%TYPE属性,可以将常量、变量、字段或参数声明为与先前声明的变量、字段、记录、嵌套表或数据库列相同的数据类型。” 在这里,您尝试对记录类型而不是记录类型应用%TYPE
Declare
Type my_record is record(
CUST_ID number(7);
CUST_NAME varchar2(200);
);
my_var my_record ;
my_new_var my_var.CUST_NAME%type;
begin
null;
end;
请参阅文章的第一行,您已发布。 其内容如下:“通过%TYPE属性,可以将常量、变量、字段或参数声明为与先前声明的变量、字段、记录、嵌套表或数据库列相同的数据类型。” 在这里,您尝试对记录类型而不是记录类型应用%TYPE
Declare
Type my_record is record(
CUST_ID number(7);
CUST_NAME varchar2(200);
);
my_var my_record ;
my_new_var my_var.CUST_NAME%type;
begin
null;
end;
你需要反过来做。如果首先声明变量(如果需要,可以使用
%type
),则记录定义可以将其引用为somevariable%type
。或者先声明一个子类型,然后在这两个位置引用它。您需要以另一种方式执行此操作。如果首先声明变量(如果需要,可以使用%type
),则记录定义可以将其引用为somevariable%type
。或者首先声明一个子类型,并在两个位置引用该子类型