我正在尝试使用以下代码定义一个type
。
CREATE OR REPLACE TYPE MY_TYPE AS OBJECT (
app_id some_table_name.app_id%type
);
如果我运行这个,就会出现错误。
Error(4,32): PLS-00201: identifier 'some_table_name.app_id' must be declared
这个有什么问题吗?
我正在尝试使用以下代码定义一个type
。
CREATE OR REPLACE TYPE MY_TYPE AS OBJECT (
app_id some_table_name.app_id%type
);
如果我运行这个,就会出现错误。
Error(4,32): PLS-00201: identifier 'some_table_name.app_id' must be declared
这个有什么问题吗?
CREATE OR REPLACE TYPE MY_TYPE AS OBJECT
( one_row some_table_name.%rowtype );
为接口创建动态对象:这会多酷呀!
%type
是 PL/SQL 语法 - 这是我漏掉的重要部分。谢谢。 - AppleGrew在数据库中声明类型时,不能使用some_table_name.app_id%type
,就像你不能这样做一样:
create table emp (empno number,
deptno dept.deptnp%type, -- NOT ALLOWED
);
您必须使用内置类型,例如NUMBER、VARCHAR2(10),或者用户自定义类型,例如mytype