Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Sql 使用import命令在db2表的NOTNULL列中输入空格_Sql_Unix_Import_Db2 - Fatal编程技术网

Sql 使用import命令在db2表的NOTNULL列中输入空格

Sql 使用import命令在db2表的NOTNULL列中输入空格,sql,unix,import,db2,Sql,Unix,Import,Db2,我在两个结构相同的不同数据库中有两个表 我将一个表导出到.dat文件中,然后使用db2 import命令将其导入到另一个表中: import from $TEMP_DIR/TO_IMPORT.dat of del modified by dateformat=\"YYYY-MM-DD\" timeformat=\"HH:MM:SS\" timestampformat=\"YYYY-MM-DD HH:MM:SS.UUU\" chardel0x01 coldel| COMMITCOUNT 1000

我在两个结构相同的不同数据库中有两个表

我将一个表导出到.dat文件中,然后使用db2 import命令将其导入到另一个表中:

import from $TEMP_DIR/TO_IMPORT.dat of del modified by dateformat=\"YYYY-MM-DD\" timeformat=\"HH:MM:SS\" timestampformat=\"YYYY-MM-DD HH:MM:SS.UUU\" chardel0x01 coldel|  COMMITCOUNT 1000 messages $LOG_DIR/to_import.log insert into MY_SCHEMA.MY_TABLE
TO_IMPORT.dat中的一行如下所示:

col1_val|col2_val|col3_val|col4_val|col5_val
abc| | |def|pqr
分隔符是“|”

col1、col2、col3在源表和目标表中都不是空列

然而,在源表中的某些行中,col2和col3中有空格,而不是字符值

这些文件以.dat文件的形式提供,如下所示:

col1_val|col2_val|col3_val|col4_val|col5_val
abc| | |def|pqr
现在,在导入上述行的过程中,这些空格被视为NULL,因此在尝试在目标表的NOTNULL列中插入NULL值时,Everything都会失败

此问题的解决方案/解决方法是什么


谢谢你的阅读

您可以使用选项KEEPBLANKS,它不会将空格视为NULL

来自IBM DB2文档:

KEEPBLANKS-在CHAR、VARCHAR、LONG VARCHAR或CLOB类型的每个字段中保留前导空格和尾随空格。如果没有此选项,所有不在字符分隔符内的前导空格和尾随空格都将被删除,并且为所有空白字段在表中插入空值。