作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 sqlldr 在 Oracle 数据库中加载 mysql 数据...我的问题是我在 MySQL 中有一个 Oracle 不喜欢的 DATE 列...
这是我在 mysql 中的列的结构:
Extra Type Field Default Null Key
date dateToSend 0000-00-00 NO
这是我的 ctl 文件中的条目:
DATETOSEND "CASE :DATETOSEND WHEN '0000-00-00 00:00:00' THEN TO_DATE('1900-01-01', 'YYYY-MM-DD') ELSE TO_DATE(:DATETOSEND, 'YYYY-MM-DD HH24:MI:SS') END"
我用于“DATETOSEND
”的 Oracle 列是 DATE
来自 mysql 的日期字段示例为:“2014-08-14
”
最后,我从 sqlldr 得到的错误是:
ORA-01861: 文字与格式字符串不匹配
我知道这可能与我格式化“TO_DATE”的方式有关,但我不确定我错过了什么......
更新:这使它正常工作:
DATETOSEND "to_date(SUBSTR(:DATETOSEND,1,10),'YYYY-MM-DD')"
最佳答案
我怀疑问题是:
CASE :DATETOSEND WHEN '0000-00-00 00:00:00'
该常量在 Oracle 中是无效日期。也许这会起作用:
CASE TO_CHAR(:DATETOSEND, 'YYYY-MM-DD HH24:MI:SS') WHEN '0000-00-00 00:00:00'
关于MySQL数据字段转oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26768204/
我是一名优秀的程序员,十分优秀!