sql - 如何解决 ORA-01861:文字与格式字符串不匹配异常
问题描述
我正在使用 INSERT INTO...SELECT 查询从 TABLE1 中选择一些字段值并将这些值填充到 TABLE2 中。TABLE1 有一个类型为 VARCHAR2(64 BYTE) 的 ENDDATE列,我正在尝试将该数据插入到 TABLE2 中名为 ENDDATE 的另一列中,其中ENDDATE 是 DATE 类型。所以,很明显,当我运行查询时,我遇到了一个异常
ORA-01861: literal does not match format string; nested exception is java.sql.SQLDataException
我尝试过的事情:
尝试使用将字符串类型转换为日期
CAST(CONVERT(VARCHAR(10), a.ENDDATE, 121)) AS ENDDATE_TEMP
。我为此缺少表达式错误。尝试使用
TO_DATE ()
函数,但出现未知命令错误。我使用的是 Oracle 12c 版本,我相信 TO_DATE 可用于 12c。但仍然无法让它工作。
TABLE1.ENDDATE 的示例数据:20190229 [YYYYMMDD]。
TABLE2.ENDDATE 中的数据应存储为:2019 年 2 月 29 日
我正在使用TO_DATE('20190229','YYYYMMDD')
将字符串转换为 DATE。
任何人都可以帮助我如何在查询的 SELECT 部分中转换 ENDDATE 。这种情况的任何最佳选择!
此外,我在查询末尾使用 ENDDATE 值作为 where 条件,例如 WHERE ENDDATE IS NOT NULL。由于某些规定,我无法发布代码片段,我深表歉意。
解决方案
推荐阅读
- flutter - 带有颤振的可重复使用的卡片小部件
- django-viewflow - Viewflow 1.6.0 中的流程和任务上的新字段是供图书馆用户使用还是仅供内部使用
- elasticsearch - 在 must bool 查询中使用 Regexp 搜索与使用 must_not bool 查询
- swift - 启动 SwiftUI 计时器
- python - 为“0”和“1”的熊猫数据框列创建“组号”列
- mysql - 如何从 Ubuntu 获取 windows phpmyadmin 数据库 (.SQL) 备份?
- c++ - 整数常量 0 导致 std::string 抛出
- c# - 尝试打开与 phpmyadmin 服务器的连接时,程序冻结
- perl - Perl _SYNTAX 未定义
- python-3.x - flask-admin:当前用户在从flask admin中的ModelView继承的类中使用时返回none