ORA-30734: cannot specify scope constraint on ref column with rowid ORACLE 报错 故障修复 远程处理

文档解释

ORA-30734: cannot specify scope constraint on ref column with rowid

Cause: An attempt was made to specify scope constraint on a REF column with the rowid constraint.

Action: Remove the scope constraint and then retry the operation.

错误说明

ORA-30734: 不能在rowid上指定作用范围约束,是由ORACLE数据库在执行建表语句时可能遇到的一个错误。如果试图给表中的参照列指定作用范围约束,此错误消息会出现。

常见案例

此错误是在ORACLE数据库中试图创建一个表,其中包含一个“Rowid”列和一个引用列,并在引用列上指定有作用范围约束时发生的。 例如:CREATE TABLE my_table ( id number ,ref_id ROWID CONSTRAINT ref_check CHECK(ref_id to_char(rowid)=ref_id) );

解决方法

将参照列类型从rowid更改为字符串或其他值,然后按默认方式指定作用范围约束:

CREATE TABLE my_table ( id number ,ref_id VARCHAR2 (30) CONSTRAINT ref_check CHECK (ref_id BETWEEN ‘A’ AND ‘F’) );

如果已经识别了使用rowid的列,则还可以添加_RID_提示,以强制Oracle忽略列作用范围检查:

CREATE TABLE my_table ( id number ,ref_id ROWID CONSTRAINT ref_check CHECK (ref_id to_char (rowid)=ref_id) USING_ROWID );

香港美国云服务器首选后浪云,2H2G首月10元开通。
后浪云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

THE END