我遇到了一个问题,当将数据快速加载到Teradata时,当从.csv文件加载数据时,会出现在特殊字符的前面。
CSV文件
您好,国标5.00已从您的帐户中借记,谢谢您的付款。
Teradata
您好,国标5.00已从您的帐户中借记,谢谢您的付款。
表定义
CREATE MULTISET TABLE DATABASE1.TABLE1 ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
FIELD1 VARCHAR(25) CHARACTER SET LATIN NOT CASESPECIFIC,
FIELD2 VARCHAR(750) CHARACTER SET LATIN NOT CASESPECIFIC,
FIELD3 VARCHAR(35) CHARACTER SET LATIN NOT CASESPECIFIC,
FIELD4 VARCHAR(35) CHARACTER SET LATIN NOT CASESPECIFIC,
FIELD5 VARCHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC
) PRIMARY INDEX ( FIELD1 );快速加载代码
fastload <<-EOF
.LOGON username/pass;
DATABASE DATABASE1;
SET RECORD VARTEXT "|";
BEGIN LOADING TABLE1
ERRORFILES TABLE1_ERR1,
TABLE1_ERR2;
DEFINE
FIELD1 (VARCHAR(25))
FIELD2 (VARCHAR(750))
FIELD3 (VARCHAR(35))
FIELD4 (VARCHAR(35))
FIELD5 (VARCHAR(50))
FILE=${LOAD_FILE};
SHOW;
INSERT INTO DATABASE1.TABLE1
(
FIELD1 ,
FIELD2 ,
FIELD3 ,
FIELD4 ,
FIELD5
)
VALUES
(
:FIELD1 ,
:FIELD2 ,
:FIELD3 ,
:FIELD4 ,
:FIELD5
);
.END LOADING;
.LOGOFF;
.QUIT;
EOF有谁知道如何解决这个问题吗?我正在Solaris 10 Fastload Utilityv12.00.011上运行这个程序
发布于 2017-04-20 07:19:29
fastload的默认字符集是ANSII,to是UTF8,解决方案是更改fastload函数中的会话字符集。
fastload <<-EOF
SET SESSION CHARSET 'UTF8';
.LOGON username/pass;
DATABASE DATABASE1;
SET RECORD VARTEXT "|";
BEGIN LOADING TABLE1
ERRORFILES TABLE1_ERR1,
TABLE1_ERR2;
DEFINE
FIELD1 (VARCHAR(25))
FIELD2 (VARCHAR(750))
FIELD3 (VARCHAR(35))
FIELD4 (VARCHAR(35))
FIELD5 (VARCHAR(50))
FILE=${LOAD_FILE};
SHOW;
INSERT INTO DATABASE1.TABLE1
(
FIELD1 ,
FIELD2 ,
FIELD3 ,
FIELD4 ,
FIELD5
)
VALUES
(
:FIELD1 ,
:FIELD2 ,
:FIELD3 ,
:FIELD4 ,
:FIELD5
);
.END LOADING;
.LOGOFF;
.QUIT;
EOFhttps://stackoverflow.com/questions/43251446
复制相似问题