1
私は、1つのFirebirdデータベースをisqlで照会し、その結果を別のデータベースに接続するisqlにパイプする簡単なbashスクリプトを用意しています。最初の結果セットはUPDATE ...またはINSERT ...の形式であり、2番目のisqlはそれらを実行します。 今までのデータは常に数値でした。今私は埋め込まれた見積もりを含むかもしれない名前を扱わなければならない。これにより、2番目のisqlへの入力が無効になります。 一括見積もり(名前ではなく、合計結果セットである)が二重になっていることを確認する最も簡単な方法は何ですか?ファイアバードisqlの結果をエスケープする
UPDATE FOO SET NAME='O'CONNOR' WHERE ...;
はbashのコード
UPDATE FOO SET NAME='O''CONNOR' WHERE ...;
なければならないupdate.sql結果セットは、上に示した更新コマンドである場合
(isql -i update.sql server:db1; echo "COMMIT;") | egrep "^UPDATE|^COMMIT"|isql -e server2:db2
あります。 そして、いや、私は少しボビーテーブル心配ないよ:)
質問がありますか?あなたは何をすべきか理解しているようです。 –
実行しているコマンドを含めることはできますか?これは、何が起こっているのかを簡単に見られるようにするつもりです。それはfb-isqlですか? isqlはunixodbcパッケージと競合する可能性があります。 – jcalfee314
私の質問は、2番目のisqlにパイプされたときに#2のように更新ステートメント#1を作成する方法です。最初の結果セットを埋め込み引用符からエスケープする方法や、isqlにパイプする前にエスケープしなければならない埋め込み引用符があるかどうかをbashで把握する方法を理解できません。 –