SQL*Loader 中的 If-else 情况
If-else case in SQL*Loader
每当 SQL*Loader 在读取 00:00:00 时遇到错误日期 (0000-00-00 00:00:00) 时,我需要将 NULL
插入 table =12=] 文件.
csv 中提供的错误日期始终是 0000-00-00 00:00:00
。
我需要帮助找出它处理错误日期和正确日期的案例。
有两种情况:
- 日期格式正确(YYYY/MM/DD hh24:mi:ss)
- 日期格式错误 (0000-00-00 00:00:00)
最初我在 SQL 控制文件中有一个简单的语句如下,现在我需要添加大小写来处理错误日期。
START_DATE DATE "YYYY/MM/DD hh24:mi:ss" NULLIF (START_DATE = "NULL")
.
我需要一个 SQL*Loader 语句来处理上述两种情况。
文件中的所有数据本质上都是字符串,直到被验证为不同的数据类型。因此,在将其转换为日期之前,您可以将其视为坏数据的字符串:
START_DATE "TO_DATE(NULLIF(:START_DATE, '0000-00-00 00:00:00'), 'yyyy/mm/dd hh24:mi:ss')"
我有点担心 "bad" 日期的格式与好日期的格式不同。它表示发生了一些您可能没有意识到的事情,例如来自两个不同系统的数据或该字段未作为日期存储在源系统中。
如果可能的话,我会仔细检查这些数据是如何构建的,以及错误日期的预期含义。
每当 SQL*Loader 在读取 00:00:00 时遇到错误日期 (0000-00-00 00:00:00) 时,我需要将 NULL
插入 table =12=] 文件.
csv 中提供的错误日期始终是 0000-00-00 00:00:00
。
我需要帮助找出它处理错误日期和正确日期的案例。
有两种情况:
- 日期格式正确(YYYY/MM/DD hh24:mi:ss)
- 日期格式错误 (0000-00-00 00:00:00)
最初我在 SQL 控制文件中有一个简单的语句如下,现在我需要添加大小写来处理错误日期。
START_DATE DATE "YYYY/MM/DD hh24:mi:ss" NULLIF (START_DATE = "NULL")
.
我需要一个 SQL*Loader 语句来处理上述两种情况。
文件中的所有数据本质上都是字符串,直到被验证为不同的数据类型。因此,在将其转换为日期之前,您可以将其视为坏数据的字符串:
START_DATE "TO_DATE(NULLIF(:START_DATE, '0000-00-00 00:00:00'), 'yyyy/mm/dd hh24:mi:ss')"
我有点担心 "bad" 日期的格式与好日期的格式不同。它表示发生了一些您可能没有意识到的事情,例如来自两个不同系统的数据或该字段未作为日期存储在源系统中。
如果可能的话,我会仔细检查这些数据是如何构建的,以及错误日期的预期含义。