oracle - 在 SQL Loader 中重新格式化日期
问题描述
我正在使用 SQL Loader 加载 Oracle 表,但日期格式存在问题。包含数据的 CSV 文件包含格式为 YYYY-MM-DD HH:MM:SS 的字符串,但 Oracle 表需要 DD-MON-YY 的日期格式。
我目前正在逐行浏览 CSV 文件以查找并重新格式化加载前的任何日期,但文件可以达到 10M+ 行,这可能是一个非常缓慢的过程。SQL Loader 是否允许在负载中重新格式化日期?
我正在寻找类似的东西
LOAD DATA
INFILE 'data.csv'
TRUNCATE
INTO TABLE data
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS
(
COL1,
COL2,
CREATED_DATE DATE 'DD-MON-YY',
LAST_UPDT_DATE DATE 'DD-MON-YY
)
我已经阅读了有关此 DATE 命令可以自动格式化日期的建议,但到目前为止还没有运气。
解决方案
假设created_date
和last_updt_date
实际上定义为date
在数据库中,它们没有格式。它们以人类不可读的内部打包二进制格式存储。
您的控制文件需要指定平面文件中表示日期的字符串格式。您说格式是“YYYY-MM-DD HH:MM:SS”,但这没有意义。分钟是 MI 而不是 MM,所以我认为这是一种类型。HH 是 12 小时时间格式,但如果没有 AM/PM 指示符,则没有任何意义。所以我猜你的字符串使用的是 24 小时时间格式,即 HH24。所以我的猜测是你想要
CREATED_DATE DATE 'YYYY-MM-DD HH24:MI:SS',
推荐阅读
- microcontroller - 使用 UART 和微控制器 (AT90CAN64) 的 XBee Pro S3B/XSC 问题
- azure-devops - YAML 发布阶段的内置发布变量和变量组
- python - 创建未来的 DataFrame 日期列 - Pandas - Python
- php - 连续使用函数 preg_replace_callback 几次?
- r - 将列表中的每一行数据帧除以相应的矩阵值
- python - 我无法通过我的视图保存对象。MultiValueDictKeyError 在
- c - 输入字符后程序停止工作,我不知道如何
- python - Django Web 应用程序仅在托管中显示顺序错误的项目列表
- java - 当我将按钮放在活动上时,Android应用程序崩溃,空活动工作
- php - 在 foreach 之外定义 PHP 变量?