如何在Oracle中找到命名约束的定义?

Han*_*Gay 14 oracle

我所知道的约束是它的名字(SYS_C003415),但我希望看到它的定义.

Han*_*Gay 27

看起来我应该查询ALL_CONSTRAINTS.

select OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION from ALL_CONSTRAINTS where CONSTRAINT_NAME = 'SYS_C003415';
Run Code Online (Sandbox Code Playgroud)


Rak*_*esh 7

使用以下查询在 oracle 中获取约束的定义:

Select DBMS_METADATA.GET_DDL('CONSTRAINT', 'CONSTRAINT_NAME') from dual
Run Code Online (Sandbox Code Playgroud)


cag*_*boy 5

另一种选择是对DDL进行逆向工程......

DBMS_METADATA.GET_DDL('CONSTRAINT', 'SYS_C003415')
Run Code Online (Sandbox Code Playgroud)

这里有一些例子....

http://www.psoug.org/reference/dbms_metadata.html

  • 如果是外键约束,则必须改为输入“ REF_CONSTRAINT”:从双重选择DBMS_METADATA.GET_DDL('REF_CONSTRAINT','SYS_C003415') (2认同)