此问题已在此处有答案:
SQL "not a valid month"(6个回答)
3天前关闭。
ORA-01843:不是有效月份ORA-06512:at“SYS.DBMS_SQL”,line 1721
CREATE TABLE emp (
empno NUMBER,
empname VARCHAR2(255),
DOB DATE,
salary NUMBER,
designation VARCHAR2(20)
);
INSERT INTO emp VALUES(100,'John','4.21.1994', 50000,'Manager');
尝试将数据插入表时出错
2条答案
按热度按时间kiayqfof1#
你应该对insert语句做两个修改:
fdx2calv2#
您(错误地)依赖于隐式数据转换(从字符串到
date
),但是- Oracle无法猜测您想要做什么,并且您无法提供Oracle可以识别的格式。有几个选项可以使用;选择你认为最合适的,只要它是有效的。
使用date literal,它总是有
date
关键字,后跟yyyy-mm-dd
的date:使用
to_date
函数,其格式模型遵循您输入的值:如果您选择使用月份名称,请注意不同的语言!
如果你改变session并设置任何格式模型和日期语言,你可以在该格式中插入一个 string(但是,再一次,你不应该依赖于隐式数据类型转换):