2

簡単なものでなければなりません。[編集]ヒアドキュメントを使用して一部のステートメントをSQL*PlusコマンドプロンプトにリダイレクトするBASHスクリプトを作成しています。

sqlplus -s user/pw@db > $TMPFILE <<EOF
    SET ECHO OFF;
    SET FEEDBACK OFF;
    SET HEADING OFF;
      select x
      from a_table
      where a_field like '%$1%';
    EXIT;
EOF

もちろん、一重引用符内に置換がないため、これは機能しません。だから私はこれをどうやってやるのですか? "'%$1%'" 二重引用符はSQL*Plusへの入力として使用され、エラーが発生するため、このようなことはできません。ありがとうございました。

4

2 に答える 2

1

試しましたか?わたしにはできる。ヒアドキュメントのすべての行がパラメータ展開されていることを確認するマニュアルページを確認してください。

ヒアドキュメントの形式は次のとおりです。

   <<[-]word
           here-document
   delimiter

パラメータ展開、コマンド置換、算術展開、またはパス名展開はワードに対して実行されません。単語内の文字が引用符で囲まれている場合、区切り文字は単語の引用符を削除した結果であり、ヒアドキュメントの行は展開されません。単語が引用符で囲まれていない場合、ヒアドキュメントのすべての行は、パラメーター展開、コマンド置換、および算術展開の対象になります。後者の場合、文字シーケンス\は無視され、\を使用して文字\、$、および`を引用する必要があります。

于 2011-06-01T13:45:00.563 に答える