我尝试使用DB2 import命令从CSV导入数据到DB2数据库。
在CSV中,我有这样的数据:
NUMBER,NAME
12345,aa
23456,bb
0012345,aa
在db2数据库中,我有一个表PERSON,列NUMBER VARCHAR(255), NAME VARCHAR(255)。在(NUMBER, NAME)列上有唯一约束。
当我导入db2 import FROM "C:UTILSexport.csv"INSERT INTO PERSON
只导入记录1和2,但记录3作为重复被拒绝。像前面的零被import命令截断,这是不应该发生的。
有人知道如何使db2导入命令不削减前导零时,导入VARCHAR列?
您所描述的效果可能只会发生,如果您有一些数字数据类型的NUMBER
列,如INTEGER
。
-- somefile.sql contents
drop table test_imp;
create table test_imp
(
number
varchar (255) -- comment out this line instead of the next one to get your error
--int
not null
, name varchar (255) not null
, constraint test_imp_pk unique (number, name)
);
import from export.csv of del replace into test_imp;
请将以下命令的结果显示为:
db2 -tvf somefile.sql -z somefile.sql.log
:
> cat export.csv
12345,aa
23456,bb
0012345,aa
问题解决。文件保存与Excel由db admin削减前导零…谢谢。