检查表列的约束名字我已创建使用下面的查询我的TEST_TABLE
表在Oracle如何获取系统生成的Oracle
CREATE TABLE "PK"."TEST_TABLE"
( "MYNAME" VARCHAR2(50),
"MYVAL1" NUMBER(12,0),
"MYVAL2" NUMBER(12,0),
"MYVAL3" NUMBER(12,0) NOT NULL,
CHECK ("MYVAL1" IS NOT NULL) DEFERRABLE ENABLE NOVALIDATE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
在这之后,我想删除应用在列MYVAL1检查约束。
为此,首先我需要获取列MYVAL1上的检查约束名称。我可以运行alter命令来删除该约束。
那么如何获取确切的系统生成检查约束名称列MYVAL1
。
我尝试使用以下的查询,但作为搜索条件长数据类型列,有人trowing下面误差获取数据
SELECT * FROM USER_CONSTRAINTS其中TABLE_NAME =“TEST_TABLE”; WHERE TABLE_NAME = 'TEST_TABLE' 和TO_LOB(search_condition)LIKE '% “MYVAL1” IS NOT NULL%'
错误: ORA-00932:不一致的数据类型:预期 - 了长 00932. 00000 - “不一致的数据类型:预计%s得到%s“ *原因:
*操作: 错误在行:23列:6 任何线索?
你为什么标记3个不同的数据库时,你知道,这只是相关的Oracle? –
除了'Oracle'之外,是否有一个原因被标记为'MySQL'和'SQL Server'?看起来这是一个特定于Oracle的问题。 –
重复:http://stackoverflow.com/questions/11879217/display-names-of-all-constraints-for-a-table-in-oracle-sql也许? – xQbert