我试图使用以下
代码定义
一个类型.
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
这是什么问题?
它的
错误是%类型是PL /
sql语法.它在
sql中不受
支持.
我同意这是一个耻辱,如果我们可以在类型声明中引用表列,这将是非常整洁的.不幸的是,Oracle在过去几个版本中真的放慢了对TYPE实施的改变,所以我认为这在不久的将来不太可能会改变.
我真正希望看到的是Oracle支持这种语法:
CREATE OR REPLACE TYPE MY_TYPE AS OBJECT
( one_row some_table_name.%rowtype );
界面的动态对象:多么酷?