运行T-PUMP时,我遇到DML错误。下面是将数据从文件加载到表infa_source12的脚本:
.LOGTABLE etlt5.EMP_TPUMP_LOG;
.logon ttdbia/USR/PASSWRD;
.BEGIN LOAD;
PACK 5
RATE 10
ERROR TABLE Etlt5.TPUMPERROR;
.LAYOUT RECLAYOUT;
.FIELD id * varchar(10);
.FIELD name * varchar(20);
.FIELD country * varCHAR(30);
.DML label INST;
INSERT INTO etlt5.infa_source12
(id,name,country)
VALUES
(:id, :name, :country)
.IMPORT INFINE /home/a0c9sx/SQLAExport.txt;
LAYOUT RECLAYOUT
APPLY INST ;
.END LOAD;
.LOGOFF;ERROR:
**** 10:18:50 UTY2832 A .DML statement must be entered before any SQL我参考了下面的链接:
http://www.teradatawiki.net/2013/10/Teradatautilities-tpump.html
发布于 2016-03-27 02:04:08
您的脚本充满了synax错误(从该网站复制):
.LOGTABLE etlt5.EMP_TPUMP_LOG;
.logon ttdbia/USR/PASSWRD;
.BEGIN LOAD; -- no semicolon, the next keywords are part of BEGIN LOAD
-- SESSIONS is missing
PACK 5
RATE 10
ERROR TABLE Etlt5.TPUMPERROR; -- no space between ERROR and TABLE
.LAYOUT RECLAYOUT;
.FIELD id * varchar(10);
.FIELD name * varchar(20);
.FIELD country * varCHAR(30);
.DML label INST;
INSERT INTO etlt5.infa_source12
(id,name,country)
VALUES
(:id, :name, :country) -- missing semicolon, needed for each SQL statement
.IMPORT INFINE /home/a0c9sx/SQLAExport.txt; -- no semicolon, the next keywords are part of IMPORT
LAYOUT RECLAYOUT
APPLY INST ;
.END LOAD;
.LOGOFF;如果您按照手册中的示例操作,将会节省更多的时间。
发布于 2016-03-26 23:44:41
您似乎缺少.DML命令的部分命令语法。不清楚的是你是否需要使用SERIALIZEON。
.LOGTABLE etlt5.EMP_TPUMP_LOG;
.logon ttdbia/USR/PASSWRD;
.BEGIN LOAD;
PACK 5
RATE 10
ERROR TABLE Etlt5.TPUMPERROR;
.LAYOUT RECLAYOUT;
.FIELD id * varchar(10);
.FIELD name * varchar(20);
.FIELD country * varCHAR(30);
.DML LABEL INST
DO INSERT FOR;
INSERT INTO etlt5.infa_source12
(id,name,country)
VALUES
(:id, :name, :country)
.IMPORT INFINE /home/a0c9sx/SQLAExport.txt;
LAYOUT RECLAYOUT
APPLY INST ;
.END LOAD;
.LOGOFF;在Teradata手册here中有更多关于T-Pump命令语法的信息。
https://stackoverflow.com/questions/36237062
复制相似问题