对于generated ALWAYS as identity来说,DBMS_METADATA.GET_DDL('TABLE', 'TABLE_NAME', 'OWNER', 'SEGMENT_ATTRIBUTES') 中的SEGMENT_ATTRIBUTES指什么,举例说明
时间: 2023-09-10 21:13:41 浏览: 116
对于"generated ALWAYS as identity"类型的列,SEGMENT_ATTRIBUTES选项在DDL语句中并不会影响到"generated ALWAYS as identity"的生成,因为这个选项只会影响到表级别的属性信息。
如果要获取包含"generated ALWAYS as identity"的DDL语句,只需要在DBMS_METADATA.GET_DDL函数中指定"TABLE"类型、表名、所有者和默认选项即可,示例如下:
```
SELECT DBMS_METADATA.GET_DDL('TABLE', 'TABLE_NAME', 'OWNER') FROM DUAL;
```
这样就可以获取包含"generated ALWAYS as identity"的DDL语句了。
相关问题
oracle中,generated ALWAYS as identity会产生序列,可以通过DBMS_METADATA.GET_DDL获取到吗?
是的,可以通过使用DBMS_METADATA.GET_DDL函数来获取包含"generated ALWAYS as identity"的表的DDL语句,但是需要注意以下几点:
1. 需要使用Oracle 12c或更高版本,因为"generated ALWAYS as identity"是12c版本引入的特性。
2. 需要在获取DDL语句时指定"SEGMENT_ATTRIBUTES"选项,否则DDL语句中不会包含"generated ALWAYS as identity",示例如下:
```
SELECT DBMS_METADATA.GET_DDL('TABLE', 'TABLE_NAME', 'OWNER', 'SEGMENT_ATTRIBUTES') FROM DUAL;
```
3. 在DDL语句中,"generated ALWAYS as identity"会被转换为"GENERATED BY DEFAULT ON NULL AS IDENTITY",这是Oracle内部的实现方式,不会影响使用。
阅读全文
相关推荐
















