[英]How to disable a constraint in Oracle with select statement as constraint name
我尝试禁用附加到表中列的约束
ALTER TABLE
ADV_TEST_COURSE_CREDIT
DISABLE constraint
name = (SELECT
constraint_name
from
user_constraints natural join
user_cons_columns
where
table_name = 'ADV_TEST_COURSE_CREDIT' AND
column_name = 'SEQUENCE_NUMBER' AND
constraint_type = 'C');
我尝试上面的陈述。 它不起作用。 关于如何使其工作的任何想法。
表ADV_TEST_COURSE_CREDIT
存在于dev,UAT,Production中,因此约束名称不同,但所有约束都附加在称为SEQUENCE_NUMBER
的列上
您需要动态sql和一些plsql:
declare name varchar2(200);
begin
SELECT
constraint_name
into name
from
user_constraints natural join
user_cons_columns
where
table_name = 'ADV_TEST_COURSE_CREDIT' AND
column_name = 'SEQUENCE_NUMBER' AND
constraint_type = 'C');
execute immediate 'ALTER TABLE ADV_TEST_COURSE_CREDIT DISABLE CONSTRAINT :1' using name;
end;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.