它的问题%type
在于PL / sql语法。sql不支持它。现在,我们使用PL / sql定义类型(尤其是成员函数,构造函数等),但是类型本身是sql对象,因此遵循sql规则。这意味着我们必须使用显式数据类型声明Type属性。
我同意这是一种耻辱,如果我们可以像这样在类型声明中引用表列,那将是一件很整洁的事情。不幸的是,Oracle在过去的两个版本中确实放慢了对TYPE实施的更改,因此我认为这在不久的将来不太可能改变。
我 真正 想看到的是Oracle支持以下语法:
CREATE OR REPLACE TYPE MY_TYPE AS OBJECT
( one_row some_table_name.%rowtype );
接口的动态对象:那有多酷?