如何修改或删除名称含点号(.)的Oracle约束?
Oracle中含点号的外键约束删除与重命名方案
当约束名称包含点号这类特殊字符时,Oracle会将其错误解析为对象名的拆分部分(比如误判为version用户下的pk约束),导致语句报错。解决核心是用双引号将整个约束名完整包裹,让Oracle识别为单一标识符:
1. 删除含点号的外键约束
执行以下语句(用双引号包裹约束名):
alter table user.some_table drop constraint "version.pk";
2. 重命名含点号的约束
同样用双引号包裹原约束名,正确语句为:
alter table user.some_table rename constraint "version.pk" to version_pk;
补充说明
Oracle仅允许符合标准规则的标识符(无特殊字符、非保留字、小写自动转大写)直接使用;若对象名包含点号、空格等特殊字符,或需要区分大小写,必须用双引号完整包裹,才能被识别为单一对象名。
内容的提问来源于stack exchange,提问作者Əlişiram
相关产品推荐
相关产品推荐

