如果事先已经提出这个问题,我道歉。我一直在寻找答案,这个错误消息的所有答案似乎都涉及日期字段。但是,以下内容中没有日期字段:
create table tableName (
trans_dest_name varchar2(50) not null,
mmddyyyy varchar2(8) not null,
constraint holiday_key primary key (trans_dest_name, mmddyyyy),
constraint trans_dest_name_ch check(REGEXP_LIKE(trans_dest_name,'^[a-zA-Z0-9 ]{0,50}$')),
constraint holiday_format check (
(to_number(substr(mmddyyyy, 0, 2))) < 13
AND (to_number(substr(mmddyyyy, 0, 2))) > 0
AND (to_number(substr(mmddyyyy, 2, 2))) < 32
AND (to_number(substr(mmddyyyy, 2, 2))) > 0
AND (to_number(substr(mmddyyyy, 4, 2))) = 20)
);
insert into tableName VALUES ('Power Pass', '01012015');
仅供参考,这是一位同事来找我的问题。我不确定为什么他们会使用字符串来表示日期,但这是他们决定使用的格式。问题是......似乎&#34; Power Pass&#34;插入中的值抛出此特定错误...而不是日期字符串。
SQL> SQL> insert into tableName VALUES ('Power Pass', '01012015')
*
ERROR at line 1:
ORA-01861: literal does not match format string
我最初的想法是,它是导致问题的日期字符串,可能是尝试将其转换为约束中的数字。它似乎不是这样,因为当我说同事尝试将日期字符串作为数字插入时会出现新的错误消息。
SQL> SQL> insert into tableName VALUES ('Power Pass', 01012015)
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected DATE got NUMBER
所以这部分很奇怪。为什么期望该领域的DATE?我完全被这个问题困惑了。任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
除了Maheswaran Ravisankar指出的错误索引之外,您发布的代码不会引发错误。 IOW:您看到的错误必须来自您未发布的内容。以下是您可以尝试的一些事项:
ORA-00942: table or view does not exist
看到第1个子弹。