2011-09-19 105 views
0

我想批量加载带有时间戳的数据到DB2 UDB版本9中,并且它不能正常工作。db2时间戳格式无法加载

我的目标表已创建正是如此

CREATE TABLE SHORT 
(
ACCOUNT_NUMBER INTEGER 
, DATA_UPDATE_DATE TIMESTAMP DEFAULT current timestamp 
, SCHEDULE_DATE TIMESTAMP DEFAULT current timestamp 
... 
0) 

这是

load from /tmp/short.csv of del modified by COLDEL, savecount 500 messages /users/chris/DATA/short.msg INSERT INTO SHORT NONRECOVERABLE DATA BUFFER 500 

没有行被加载我的批量加载代码。我得到一个错误

SQL0180N The syntax of the string representation of a datetime value is 
incorrect. SQLSTATE=22007 

我试图迫使时间戳格式时,我正是如此创建我的表:

CREATE TABLE SHORT 
(
ACCOUNT_NUMBER INTEGER 
, DATA_UPDATE_DATE TIMESTAMP DEFAULT 'YYYY-MM-DD HH24:MI:SS' 
, SCHEDULE_DATE TIMESTAMP DEFAULT 'YYYY-MM-DD HH24:MI:SS' 
... 
0) 

但无济于事:SQL0574N DEFAULT value or IDENTITY attribute value is not valid for column。源文件中的时间戳格式我的数据文件看起来像这样

2002/06/18 17:11:02.000 

如何格式化我的时间戳列?

回答

0

它几乎看起来像ISO。 如果您能够编辑数据文件并可以安全地将斜杠更改为连字符(可能剪辑小数部分),并且DB2接受ISO,那么您就在家。

+0

值得一试...敬请期待。 – Chris

+0

工作!谢谢。 – Chris

+0

不客气。如果你认识你的编辑器,你就不需要在数据库管理系统中进行下载! – wildplasser

2

使用LOAD实用程序的TIMESTAMPFORMAT文件类型修饰符来指定数据文件中存在的格式。

load from /tmp/short.csv 
    of del 
    modified by COLDEL, TIMESTAMPFORMAT="YYYY/MM/DD HH:MM:SS.UUUUUU" 
    savecount 500 
    messages /users/chris/DATA/short.msg 
    INSERT INTO SHORT 
    NONRECOVERABLE