檢查表列的約束名字我已創建使用下面的查詢我的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