如何解决ORA-01861:文字与格式字符串异常不匹配

时间:2019-04-12 08:50:08

标签: sql oracle

我正在使用INSERT INTO ... SELECT查询从TABLE1中选择一些字段值,并将这些值填充到TABLE2中。 TABLE1有一列 ENDDATE,其类型为VARCHAR2(64 BYTE),我正尝试将该数据插入表2中名为ENDDATE的另一列中,其中 ENDDATE为DATE类型 。 因此,很明显,当我运行查询时,我遇到了异常

ORA-01861: literal does not match format string; nested exception is java.sql.SQLDataException

我尝试过的事情:

  1. 试图使用CAST(CONVERT(VARCHAR(10), a.ENDDATE, 121)) AS ENDDATE_TEMP将String类型转换为Date。为此,我收到缺少表达式错误

  2. 试图使用TO_DATE ()函数,但收到未知命令错误。我使用的是Oracle 12c版本,我相信TO_ DATE适用于12c。但是仍然无法使其正常工作。

表1的示例数据。ENDDATE:20190229 [YYYYMMDD]。

TABLE2.ENDDATE中的数据应存储为:2019年2月29日

我正在使用TO_DATE('20190229','YYYYMMDD')将字符串转换为DATE。

任何人都可以帮助我如何在查询的SELECT部分​​内转换ENDDATE。这种情况下最好的选择!

我还使用ENDDATE值作为查询末尾的条件,例如WHERE ENDDATE IS NOT NULL。抱歉,由于某些规定,我无法发布代码段。

0 个答案:

没有答案