動的にスプールファイル名を指定する必要があり、sqlplusを呼び出すときにパラメータを渡す必要があります。以下は私が試したものですsqlplus動的スプールファイル名
echo exit | sqlplus "{{ Oracle_username }}/ {{ Oracle_pwd}} @(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host={{ Oracle_HostName }})(Port=1521))(CONNECT_DATA=(SID= {{Oracle_SID }})))" @Script.sql 'AppName' 'DatabaseName' 'ObjectType'
ここで私はアプリケーション名、データベース名とオブジェクトタイプを動的に渡そうとしました。 SQLPLUSのステップを実行する前に、私は.Belowは私script.sqlがどのように見えるかです(アプリケーション名、データベース名、オブジェクト・タイプは、すべてのフォルダであり、それはそれぞれのアプリケーションによって異なります)動的にフォルダを作成します。
SPOOL &&AppName/&&DatabaseName/&&ObjectType/Output.csv
<<SQL Script>>
SPOOL OFF
このdoenst work。誰かが何を変更する必要があるか教えてもらえますか?
は何を「動作しない」ん下のように試してみてください - 何が起こりますか?あなたは代替変数をどこかに定義していますか? –
上記のようにパラメータを渡してスプールすると、Outputはエクスポートされません。パラメータを指定しないと、スクリプトを実行すると動作します。例:SPOOL AppName/Databasename/Output.csv。私はAnsibleプレイブックからこれらのステップをすべて実行しています。私はこのすべての値を別のvarファイルに宣言します。 –