我是Linux的新手,并希望寻求您的帮助。任务是将csv数据导入DB2。它在shell脚本中,并按计划运行。该文件具有一个标题,这就是为什么我使用skipcount 1的原因。分隔符是逗号,因此,由于它是默认分隔符,因此我不包含COLDEL。
您能帮我解决为什么在运行脚本时出现以下错误吗?我使用 IMPORT 和 INSERT_UPDATE 是因为我了解到 LOAD 方法会在从CSV文件导入数据之前删除表的全部内容。表中的现有数据不应删除。仅当CSV文件中有更改时,记录才会更新,否则,应创建一个新记录。
我正在查看应使用哪个 METHOD 从CSV文件中获取特定值,目前我正在使用 METHOD P 。对于参数中的编号,我不太确定,它是否表示要访问多少列,是否应该与我从文件中导入的列相符?
下面是脚本片段:
db2 connect to MYDB user $USERID using $PASSWORD
LOGFILE=/load/log/MYDBLog.txt
if [ -f /load/data/CUST_GRP.csv ]; then
db2 "import from /load/data/CUST_GRP.csv of del skipcount 1 modified by usedefaults METHOD P(1,2,3,4,5)
messages $LOGFILE
insert_update into myuser.CUST(NUM_ID,NUM_GRP,NUM_TEAM,NUM_LG,NUM_STATUS)";
else echo "/load/data/CUST_GRP.csv file not found." >> $LOGFILE;
fi
if [ -f /load/data/CUST_GRP.csv ]; then
db2 "import from /load/data/CUST_GRP.csv of del skipcount 1 modified by dateformat=\"YYYY-MM-DD\" timeformat=\"HH:MM:SS\" usedefaults METHOD P(1,2,3,4,5,6,7)
messages $LOGFILE
insert_update into myuser.MY_CUST(NUM_CUST,DTE_START,TME_START,NUM_CUST_CLSFCN,DTE_END,TME_END,NUM_CUST_TYPE)";
else echo "/load/data/CUST_GRP.csv file not found." >> $LOGFILE;
fi
我遇到的错误是这样的:
SQL0104N An unexpected token "modified" was found following "<identifier>".
Expected tokens may include: "INSERT". SQLSTATE=42601
谢谢!