0
毎週同じクエリをsqlplusまたはSQLCLで抽出したいと思います。Windowsサーバー上でタスクをスケジュールし、csvファイルにアカウントコードと日付の名前を付けてスプーリングします。 私は次のスクリプトを書いて動作しますが、私は2つの問題があります。動的スプールからファイル名
SET ECHO OFF
SET FEEDBACK OFF
SET VERIFY OFF
COL VPATH NEW_VALUE NEW_VPATH;
COL PRESIDIO NEW_VALUE NEW_PRESIDIO;
COL SEPARATORE NEW_VALUE NEW_SEPARATORE;
COL DATA NEW_VALUE NEW_DATA;
COL EXT NEW_VALUE NEW_EXT;
SET SQLFORMAT CSV;
SELECT 'C:\Shared_Folder\' VPATH, 'AO_GALLARATE' PRESIDIO,'_' SEPARATORE, TO_CHAR(CURRENT_DATE) DATA,'.CSV' EXT FROM DUAL;
SET FEEDBACK ON;
SET TERMOUT OFF;
SPOOL "&NEW_VPATH&NEW_PRESIDIO&NEW_SEPARATORE&NEW_DATA&NEW_EXT";
SELECT /*CSV*/ SERIAL_NUMBER, DNS_HOST_NAME, IP_ADDRESS, MODEL_NAME, TOTAL_PAGE_COUNT - COLOR_PAGE_COUNT, COLOR_PAGE_COUNT, TRUNC(LAST_DATA_COLLECTION) FROM DEVICE WHERE ACCOUNT_CODE = '&NEW_PRESIDIO' AND model_name LIKE '%MS410%';
ORDER BY SERIAL_NUMBER ASC;
SPOOL OFF;
- 私は、少なくとも第1の時間のために、すべてのnew_vpathに値を入力し、new_presidio ..を要求するプロンプトを取得。もし私がこの部分を削除すると、スプーリングを開始するはずの要求があります
- 私はpl/sqlを使用すると、変数を正常に設定できるので、プロンプトは表示されませんが、スプーリングとクエリは機能しません。実際にスプールすると不正なファイル名が表示され、クエリで「account_code」文字列が見つからないためクエリが機能しません。
どこで間違っているのですか?
[動的スプール位置がスプールを使用する方法ORACLE]の可能な重複(http://stackoverflow.com/questions/1246360/oracle-how-to-use-spool-with-dynamic-spool-location ) – ruudvan