oracle对对象类型表的列进行注释

时间:2015-06-03 06:28:27

标签: sql oracle user-defined-types

我有一个对象类型

create or replace type header_o as object(
col1 number, 
col2 number, 
col3 number);

然后我创建表

create table tab1(
id number, 
header header_o);

所以我想对header.col1发表评论
当我尝试

comment on column tab1.header.col1 is 'comment goes here';

oracle引发了丢失的关键字。
我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

  

oracle评论对象类型表的列

不,你不能。 Oracle不支持此功能。

documentation,您可以添加评论:

  • 表格,视图或物化视图
  • 索引类型
  • 运算符

然而,您正在尝试向对象类型添加评论。您可以在表

中添加注释

例如,

SQL> CREATE OR REPLACE type header_o
  2  AS
  3    object
  4    (
  5      col1 NUMBER,
  6      col2 NUMBER,
  7      col3 NUMBER)
  8  /

Type created.

SQL> CREATE TABLE tab1
  2    ( ID NUMBER, header header_o
  3    )
  4  /

Table created.

SQL> COMMENT ON COLUMN tab1.HEADER IS 'comment goes here'
  2  /

Comment created.

答案 1 :(得分:2)

COMMENT语法可以追溯到时间的迷雾中,从对象类型开始。所以它只支持TABLE.COLUMN

我想可以扩展它以支持TABLE.COLUMN.ATTRIBUTE。复杂性是类型可以用类型构造,可以用类型构造,等等。这意味着语法的实现会复杂得多。这可能是甲骨文没有采用它的一个原因。

另一个原因可能是很少有人懒得在列或表上发表评论,这似乎不值得努力。

无论哪种方式,我担心这是变更请求。