在ORACLE SQL DEVELOPER中错误的ORA 00001对于GHOST COLUMN SYS_NC00008 $

当我尝试在表中插入条目时,我在Oracle SQL Developer中遇到一个唯一的约束错误。 在为唯一约束错误指定的列是鬼列- SYS_NC00008 $

(我在此处发布以下查询时故意删除了一些值-忽略它)

查询:

INSERT INTO "---"."---" (ID,MESSAGE_TYPE,IS_DELETED,CREATED_BY,CREATED_ON,UPDATED_BY,UPDATED_ON) 
VALUES ('2','----','N','system',TO_TIMESTAMP('2018-08-16 07:51:25.000000000','YYYY-MM-DD HH24:MI:SS.FF'),TO_TIMESTAMP('2019-09-25 05:07:06.000000000','YYYY-MM-DD HH24:MI:SS.FF'))

错误:

  

ora-00001 :违反了唯一约束(----.----_ IX0) ORA-06512 :   第1行

daodan_9 回答:在ORACLE SQL DEVELOPER中错误的ORA 00001对于GHOST COLUMN SYS_NC00008 $

SYS_NC00008 $和类似的列归因于基于函数的索引的创建。

SQL> create table t ( x int );

Table created.

SQL>
SQL> create index IX on t ( x + 10 );

Index created.

SQL>
SQL> select column_name
  2  from   user_tab_cols
  3  where  table_Name = 'T';

COLUMN_NAME
------------------------------
X
SYS_NC00002$

对USER_IND_EXPRESSIONS进行查询以查看索引的内容,这将告诉您唯一违规的来源。

SQL> select COLUMN_EXPRESSION
  2  from    user_ind_expressions
  3  where  index_name = 'IX';

COLUMN_EXPRESSION
--------------------------------------
"X"+10
本文链接:https://www.f2er.com/3138038.html

大家都在问