2017-08-15 8 views
0

db2 -xまたはオプションはパラメーター・マーカーの使用をサポートしていますか?私はbashスクリプトからSQL文を呼び出しています。私はこれまでのoptiosを見つけることができないと私はbashで文字列の連結を使用してdb2 -xにSQLを渡す必要があると思うきちんとしていないと思う。DB2 CLIは、SQLでbashスクリプトから実行する必要のあるパラメーター・マーカーをサポートしていますか?[AIX]

答えて

3

DB2 CLPでは、パラメーター・マーカーの使用はサポートされていません。

しかし、あなたは非対話(すなわち、シェルから)DB2を実行しているとき、あなたはシェル変数置き換えることができます:ちょうどシェル置換を使用している。このため、

$ v=4 
$ db2 "select count(*) from syscat.tables where card = ${v}" 

を、あなたは、単一の追加処理する必要がありますあなたの文字列(... where tabschema = '${tabschema}' ...)を引用符で囲みます。文字列に一重引用符がある場合、これはより複雑になります。

また、ループでシェルスクリプト内でこのメソッドを使用することができます:あなたは、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などで使うことを考えたいと思っているでしょう。

関連する問題