3

SQLスクリプトファイルに書かれたSQLを実行するためにシェルスクリプトを使用しています。スクリプト ファイルには、シェル ランタイム パラメータから転送できるバインド変数がいくつかあります。

これが私のコードです。

result=`sqlplus -s ${DB_USER_NAME}/${DB_USER_PWD}@${DB_SID}<<!
        SET HEADING ON
        SET UNDERLINE OFF
        SET COLSEP ','
        WHENEVER SQLERROR EXIT 255
        SET TRIM SPOOL ON
        SPOOL $outputPath

        @{sqlFilePath} $@


        #@${sqlFilePath} "$@"    
`

次のようにシェルを実行すると:

run_sql.sh param1 param2 "param 3" 

$@ は param1,param2,param,3 に 4 つの変数として説明されます

@{sqlFilePath} param1 param2 param 3

「$@」は「param1 param2 param 3」に 1 つの変数として説明されます

@{sqlFilePath} "param1 param2 param 3"

しかし、私はパラメータがこのように説明されることを望みます

@{sqlFilePath} param1 param2 "param 3"

私の問題を解決する方法はありますか?

4

1 に答える 1

3

どうですか:

run_sql.sh param1 param2 '"param 3"'

スクリプトで次のように展開する必要があります。

@{sqlFilePath} param1 param2 "param 3"
于 2013-01-23T02:08:21.710 に答える