Sql 对象类型表列上的oracle注释

Sql 对象类型表列上的oracle注释,sql,oracle,user-defined-types,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引发缺少的关键字。

我有一个对象类型

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引发缺少的关键字。
我怎样才能做到这一点

对象类型表列上的oracle注释

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

从中,您可以将注释添加到:

  • 表、视图或物化视图
  • 索引类型
  • 接线员
同时,您正在尝试向对象类型添加注释。您可以将注释添加到表

比如说,

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.
对象类型表列上的oracle注释

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

从中,您可以将注释添加到:

  • 表、视图或物化视图
  • 索引类型
  • 接线员
同时,您正在尝试向对象类型添加注释。您可以将注释添加到表

比如说,

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.

注释语法可以追溯到很久以前,在对象类型之前。所以它只支持TABLE.COLUMN

我认为可以扩展它以支持TABLE.COLUMN.ATTRIBUTE。复杂性在于类型可以用类型构造,而类型可以用类型构造,等等。这意味着语法的实现将更加复杂。这可能是甲骨文没有着手进行这项工作的一个原因

另一个原因可能是,很少有人在列或表上添加注释,这似乎不值得这么做


不管怎样,恐怕这都是一个更改请求。

注释语法可以追溯到很久以前的对象类型之前。所以它只支持TABLE.COLUMN

我认为可以扩展它以支持TABLE.COLUMN.ATTRIBUTE。复杂性在于类型可以用类型构造,而类型可以用类型构造,等等。这意味着语法的实现将更加复杂。这可能是甲骨文没有着手进行这项工作的一个原因

另一个原因可能是,很少有人在列或表上添加注释,这似乎不值得这么做


不管怎样,我担心这是一个变更请求。

它确实提出了
缺少的关键字
,问题是我不想在
标题
上发表评论,我想在header.col1上发表评论。因为当我查询表时,我希望看到
col1
的注释,而不是整个标题。我想这是不可能的?@arminrock正如我所说的,你可以在表列中添加注释,而不是在对象类型上添加注释。这实际上是在提升
缺少的关键字
,问题是我不想在
标题
上添加注释,我想在header.col1上添加注释。因为当我查询表时,我希望看到
col1
的注释,而不是整个标题。我想这是不可能的?@arminrock正如我所说,您可以向表列添加注释,而不是对象类型。