DB2 CLI是否支持需要从bash脚本执行的SQL中的参数标记[AIX]
问题描述:
db2 -x
或db2 -f filename.sql
选项是否支持使用参数标记?我正在从bash脚本调用SQL语句。到目前为止我找不到任何比较,我想我必须在bash中使用字符串连接,并将SQL传递给db2 -x
,这看起来不整齐。DB2 CLI是否支持需要从bash脚本执行的SQL中的参数标记[AIX]
答
DB2 CLP不支持使用参数标记。
但是,当您正在运行的DB2非交互(即从壳),您也可以替换的shell变量:只是使用shell替代
$ v=4
$ db2 "select count(*) from syscat.tables where card = ${v}"
正因为如此,你需要处理添加单引号围绕着你的字符串(... where tabschema = '${tabschema}' ...
),如果你的字符串有单引号,这变得更加复杂。
您也可以使用shell脚本这个方法的循环:如果你想使用参数标记,以避免每次它执行时重新编译SQL语句
#!/bin/ksh
db2 connect to sample
for v in 1 2 3 4 5 ; do
db2 "insert into t1 (c1) values (${v})"
done
db2 terminate
这不会帮助,但如果你重新寻找你可能想要考虑使用perl和DBI,ruby/ibm_db等。