查找错误 ORA-00932:数据类型不一致:预期 DATE 为 NUMBER

问题描述 投票:0回答:5

当我尝试运行此查询时,出现上述错误。有人可以帮我解决这个问题吗

UPDATE CCO.ORDER_CREATION 
   SET "Doc_Date" = 8/9/2013 
 WHERE "Document_Number" IN (3032310739,3032310740,3032310738)
sql oracle
5个回答
9
投票

试试这个

UPDATE CCO.ORDER_CREATION 
   SET "Doc_Date" =   TO_DATE('8/9/2013', 'MM/DD/YYYY')
 WHERE "Document_Number" IN (3032310739,3032310740,3032310738)

9
投票

8/9/2013
是一个数值:8 除以 9 除以 2013。

您应该使用

to_date()
函数将字符串转换为日期:

UPDATE CCO.ORDER_CREATION 
   SET "Doc_Date" = to_date('08/09/2013', 'dd/mm/yyyy')
 WHERE "Document_Number" IN (3032310739,3032310740,3032310738);

您可能需要调整格式掩码,因为不清楚您是指 8 月、9 日还是 9 月 8 日

或者,您可以使用 ANSI 日期文字(对于 ANSI SQL 日期文字,格式始终为 yyyy-mm-dd):

UPDATE CCO.ORDER_CREATION 
   SET "Doc_Date" = DATE '2013-09-08'
 WHERE "Document_Number" IN (3032310739,3032310740,3032310738);

1
投票

目前您将日期作为数字字符串传递,将其转换为日期,然后尝试按如下方式插入

UPDATE CCO.ORDER_CREATION 
SET "Doc_Date" = TO_DATE('8/9/2013','MM/DD/YYYY')
WHERE "Document_Number" IN (3032310739,3032310740,3032310738)

0
投票

这就是我的看法:

UPDATE CCO.ORDER_CREATION tbl1
   SET tbl.Doc_Date =   TO_DATE('08/09/2013', 'MM/DD/YYYY')
 WHERE tbl1.Document_Number IN (3032310739,3032310740,3032310738)

0
投票

更新 CCO.ORDER_CREATION 设置“Doc_Date”= 8/9/2013 其中“Document_Number”位于 (3032310739,3032310740,3032310738)

© www.soinside.com 2019 - 2024. All rights reserved.