2017-08-15 90 views

回答

3

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等。