Plsql 将变量定义为记录属性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文档显示的事情 我不希望硬编码变量类型

假设我在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文档显示的事情


我不希望硬编码变量类型,因为在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
。或者首先声明一个子类型,并在两个位置引用该子类型