Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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中加载各种格式的数据_Oracle_Date_Format - Fatal编程技术网

是否可以在日期列| Oracle中加载各种格式的数据

是否可以在日期列| Oracle中加载各种格式的数据,oracle,date,format,Oracle,Date,Format,表: 表EMO_SRC有3个“日期”列DOB、雇用日期和终止日期 如果 与上面一样,数据对这3列具有随机日期格式。Oracle不允许加载“01-06-2014”格式。 请让我知道是否有任何方法可以加载不同格式的日期值,或者我需要将数据转换为“00/00/0000”格式。大量的数据不匹配正在加载。那么,如何更改和加载表中的数据呢 ========================================================== DOB | Date_of

表:

表EMO_SRC有3个“日期”列DOB、雇用日期和终止日期

如果

与上面一样,数据对这3列具有随机日期格式。Oracle不允许加载“01-06-2014”格式。 请让我知道是否有任何方法可以加载不同格式的日期值,或者我需要将数据转换为“00/00/0000”格式。大量的数据不匹配正在加载。那么,如何更改和加载表中的数据呢

==========================================================
 DOB             | Date_of_hire      | date_of_termination
============================================================
 11/24/1987         10/27/2008            10/28/2016
 4-26-1984          1-06-2014
 02-26-1984         09/29/2014            4-15-2017
请告诉我解决办法


您没有提到您使用的工具

不管怎样,你有个问题。列和行中的“日期”格式不同,这使得情况更糟

我建议您创建一个函数,该函数将接受您在源数据中找到的输入值——“日期”(实际上是字符串),并尝试使用具有不同格式掩码的
to_DATE
函数将其转换为有效日期:
mm/dd/yyyyy
dd mm yyyy
,等等,以源代码中找到的为准。使用内部BEGIN-EXCEPTION-END块,以便第一次失败不会终止函数的执行。如果您设法找到了正确的日期值,请精细加载它。如果没有,请记录错误并尝试用另一个
to_DATE
的格式掩码修复它。或者,您可以使用
REGEXP\u LIKE
来验证输入格式

您无法解决的问题是一个看起来像
10-08-20
的字符串。哪个是哪个?
10
是日、月还是年?其他值也是如此


另外,如果源代码很大,为所有这些值调用函数肯定会花费很多时间

您使用哪种应用程序?格式化由客户机完成,而不是由
NLS\u DATE\u格式驱动
==========================================================
 DOB             | Date_of_hire      | date_of_termination
============================================================
 11/24/1987         10/27/2008            10/28/2016
 4-26-1984          1-06-2014
 02-26-1984         09/29/2014            4-15-2017
SQL> show parameters nls_date_format;

NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
nls_date_format                      string     DD-MON-RR