从csv文件导入数据

时间:2011-03-15 08:59:13

标签: oracle date-format oracle-sqldeveloper

我正在尝试从.csv文件导入一些数据(使用oracle sql developer),但我收到的错误是: -

Verifying if the Date columns have date formats FAILED Date columns ...列名

我的.csv文件中的日期是:

2008-01-09 15:59:23.187

我尝试过这种格式,但它不起作用(在数据导入向导中)

yyyy-mm-dd HH24:mi:ss.ff3

我正试图找出一个希望得到一些帮助的解决方案。

感谢。

2 个答案:

答案 0 :(得分:3)

我现在无法测试,但我猜测:格式不是DATE格式,而是TIMESTAMP格式。考虑:

SQL> select to_date('2008-01-09 15:59:23.187', 
  2                 'yyyy-mm-dd HH24:mi:ss.ff3') from dual;

ORA-01821: date format not recognized

SQL> select to_timestamp('2008-01-09 15:59:23.187', 
  2                      'yyyy-mm-dd HH24:mi:ss.ff3') ts from dual;

TS
-------------------------------------------------
09/01/08 15:59:23,187000000

如果这与SQL Dev遇到的错误相同,则可以在时间戳列中导入。

答案 1 :(得分:1)

Oracle Date只能存储到秒,您需要使用时间戳。

使用时间戳工作正常(日期失败,错误为“DATE格式化中不允许使用小数秒格式元素”)

create table test2(cola number(1), colB varchar2(5), colD timestamp);

csv file:
colA, colB, colD
"1","a","2008-01-09 :15:59:23.187"
"2","b","2009-02-10 :16:48:32.188"
"3","c","2012-03-11 :17:37:41.189"

"Import Data" in SQL Developer 3.0.03 using colD format of yyyy-mm-dd HH24:mi:ss.ff3
select * from test2;
COLA                   COLB  COLD                      
---------------------- ----- ------------------------- 
1                      a     09-JAN-08 03.59.23.187000000 PM 
2                      b     10-FEB-09 04.48.32.188000000 PM 
3                      c     11-MAR-12 05.37.41.189000000 PM