Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle-文字与格式字符串不匹配错误_Sql_Database_Oracle_Date Format_Ora 01861 - Fatal编程技术网

Sql Oracle-文字与格式字符串不匹配错误

Sql Oracle-文字与格式字符串不匹配错误,sql,database,oracle,date-format,ora-01861,Sql,Database,Oracle,Date Format,Ora 01861,可能重复: 我得到以下错误: INSERT INTO CatalogueEntry VALUES('2001-12-10', 2, 14.99, 1, 0) ERROR at line 1: ORA-01861: literal does not match format string ` 第一个字段是日期格式 有什么想法吗 谢谢。试试这个SQL: INSERT INTO CatalogueEntry VALUES(to_date('2001-12-10','

可能重复:

我得到以下错误:

INSERT INTO CatalogueEntry VALUES('2001-12-10', 2, 14.99, 1, 0)

ERROR at line 1: ORA-01861: literal does not match format string `
第一个字段是日期格式

有什么想法吗

谢谢。

试试这个SQL:

INSERT INTO CatalogueEntry 
              VALUES(to_date('2001-12-10','yyyy-mm-dd'), 2, 14.99, 1, 0);

在向日期列插入字符串值时,需要使用函数在插入期间将其转换为日期。使用此函数时,您将提供字符串的格式

截止日期()
函数格式:

to_date( string1, [ format_mask ], [ nls_language ] )
因此,您的查询将如下所示:

insert into CatalogueEntry
values
(
  to_date('2001-12-10', 'yyyy-mm-dd'),
  2,
  14.99,
  1,
  0);

请参见

另一种替代方法是使用ANSI SQL文本:
date'2001-12-10'
@a_horse\u with_no\u name
date
literal取决于NLS_date\u格式设置,因此不能作为OP问题的替代解决方案。@NicholasKrasnov:ANSI日期文本完全独立于任何NLS或其他环境设置(它必须是
YYYY-MM-DD
)。因此这是一个有效的替代方案(输入更少,实际上可以在广泛的DBMS中工作)@a_horse_,没有名字哦,当然是:)。出于某种原因,我错误地假设了相反的结果。@horse\u和\u no\u同名,我不知道你可以使用这样的ANSI SQL文本。谢谢你的信息。