【问题标题】:ORA-01861: literal does not match format string : SQLORA-01861: 文字与格式字符串不匹配: SQL
【发布时间】:2015-02-13 00:32:36
【问题描述】:
INSERT INTO RENT_CONTRACT VALUES ('123456789','201213','20123444',100,1,' 2014-01-07 ');
我正在尝试将这个元组插入到我的rent_contract 表中,但是这个错误:
ORA-01861: 文字与格式字符串不匹配)
出现了。虽然最后一个值的类型是DATE。有什么解决方案的建议吗?
提前谢谢你:)
【问题讨论】:
标签:
sql
database
oracle
date
【解决方案1】:
Oracle(默认情况下)使用 DD-MMM-YYYY 格式。所以试试这个:
INSERT INTO RENT_CONTRACT
VALUES ('123456789', '201213', '20123444', 100,1 , '07-JAN-2014');
另外,不要在字符串常量中添加空格。
或者,使用DATE 关键字:
INSERT INTO RENT_CONTRACT
VALUES ('123456789', '201213', '20123444', 100,1 , DATE '2014-01-07');
【解决方案2】:
这取决于您的会话 NLS 设置。你要找的是
INSERT INTO RENT_CONTRACT VALUES ('123456789','201213','20123444',100,1,to_date('2014-01-07','yyyy-mm-dd'));