来自KSH脚本的DB2过程编译

时间:2013-06-12 21:04:42

标签: db2 ksh

我正在编写一个KSH脚本来接受.sql文件参数,然后是要编译该文件的每个模式。该脚本假定.sql文件是DB2 9.7过程。

我相信我会遇到终止字符的db2命令的语法。我们总是使用at符号('@'),但是下面的代码段失败,错误“DB21001E选项” - 在“db2”命令之后或在DB2OPTIONS变量中指定的@“不正确”。非常感谢任何帮助。

#!/bin/ksh
. $IBM_DB_DIR/db2profile
db2 connect to dwdev3
const_compil_string_suffix="-vtd@ -f ../../stored_procedures/"
script_name="ETL.THING.sql"
db2 "$const_compil_string_suffix$script_name"
db2 terminate

我已经确认,'terminate'上面的结果字符串命令在linux下运行时可以按预期编译过程:     db2 -vtd @ -f ../../ stored_procedures / ETL.THING.sql

提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试丢失引号:

db2 ${const_compil_string_suffix}${script_name}

答案 1 :(得分:0)

我怀疑选项字符串-vtd@可能是罪魁祸首。

当使用单个字符选项时,大多数unix命令接受两种类型的选项,包括带有和没有参数的选项。

显然,@字符正在作为选项参数处理,但错误消息表明它本身被视为一个选项。

尝试将选项分开,如:-v -t -d@,重新排序。或者删除其中一个-t-v选项。

要小心。我不了解db2 cli。实验需要您自担风险。

以后是否添加了-t选项?