Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL*加载器中的If-else情况_Oracle_Csv_Sql Loader - Fatal编程技术网

Oracle SQL*加载器中的If-else情况

Oracle SQL*加载器中的If-else情况,oracle,csv,sql-loader,Oracle,Csv,Sql Loader,每当SQL*加载程序在读取.csv文件时遇到错误日期(0000-00-00 00:00:00)时,我需要将NULL插入表中 csv中提供的错误日期始终为0000-00-00:00:00 我需要帮助找出处理错误日期和正确日期的理由 有两种情况: 日期格式正确(YYYY/MM/DD hh24:mi:ss) 格式错误的日期(0000-00-00:00:00) 最初,我在SQL控制文件中有一个简单的语句,如下所示,现在我还需要添加case来处理坏日期 开始日期日期“YYYY/MM/DD hh24:mi:

每当SQL*加载程序在读取
.csv
文件时遇到错误日期(0000-00-00 00:00:00)时,我需要将
NULL
插入表中

csv中提供的错误日期始终为
0000-00-00:00:00

我需要帮助找出处理错误日期和正确日期的理由

有两种情况:

  • 日期格式正确(YYYY/MM/DD hh24:mi:ss)
  • 格式错误的日期(0000-00-00:00:00)
  • 最初,我在SQL控制文件中有一个简单的语句,如下所示,现在我还需要添加case来处理坏日期

    开始日期日期“YYYY/MM/DD hh24:mi:ss”NULL(开始日期=“NULL”)


    我需要一个SQL*Loader语句来处理上述两种情况。

    在验证为不同的数据类型之前,文件中的所有数据本质上都是字符串。因此,在将其转换为日期之前,可以将其视为坏数据的字符串:

    START_DATE "TO_DATE(NULLIF(:START_DATE, '0000-00-00 00:00:00'), 'yyyy/mm/dd hh24:mi:ss')"
    
    我有点担心“坏”日期的格式与“好”日期的格式不同。它表示您可能不知道正在发生的事情,例如,来自两个不同系统的数据,或者此字段未作为日期存储在源系统中


    如果可能的话,我会仔细检查这些数据是如何构造的,以及错误日期的预期含义是什么。

    实际问题是什么每当SQLDR遇到错误日期时,我需要在列中插入Null,如:0000-00-00:00:00。。。。“开始日期”列中有两种情况。。。一个日期格式正确,一个0000-00-00:00:00