如何创建引用数据类型的表列的Oracle Type?

App*_*rew 10 sql oracle user-defined-types

我试图type使用以下代码定义一个.

CREATE OR REPLACE TYPE MY_TYPE AS OBJECT (
    app_id        some_table_name.app_id%type
);
Run Code Online (Sandbox Code Playgroud)

如果我运行这个,我得到错误.

Error(4,32): PLS-00201: identifier 'some_table_name.app_id' must be declared
Run Code Online (Sandbox Code Playgroud)

这有什么问题?

APC*_*APC 21

它有什么问题%type是PL/SQL语法.SQL不支持它.

我同意这是一个耻辱,如果我们可以像这样在类型声明中引用表列,那将是非常好的.不幸的是,Oracle在过去的几个版本中确实放慢了对TYPE实现的更改,所以我认为这不太可能在不久的将来发生变化.

真的希望看到Oracle支持这种语法:

CREATE OR REPLACE TYPE MY_TYPE AS OBJECT 
      (     one_row        some_table_name.%rowtype ); 
Run Code Online (Sandbox Code Playgroud)

接口的动态对象:它有多酷?