0

私は次のSQLを持っています:

select
CASE
          WHEN Count(*) > 1
              THEN 'Archiving task was executed succesfully!'
              ELSE 'Archiving task was not executed succesfully for day: ' || Days
          END CASE
from
(select substr(table_name,12,8) as Days from user_tables
where table_name like 'CDR_DETAIL_%' AND SubStr(table_name,12,8) IN ( SELECT * FROM tmp_archive_process_ict )
OR SubStr(table_name,12,8) IS null
order by 1 asc )
where rownum <= 7
GROUP BY Days
;

これにより、SQL ツールで次の結果が返されます。

CASE
Archiving task was not executed succesfully for day: 20130819
Archiving task was executed succesfully!
Archiving task was not executed succesfully for day: 20130821
Archiving task was not executed succesfully for day: 20130820

シェルでsqlplusを使用して、以前に示したSQLの結果をファイルに返そうとしています:

UNIX シェルの一部:

#Make oracle conneciton
-oracle connection sqlplus

SET PAGESIZE 0;
SET ECHO OFF;
SET SPACE 0;
SET FEEDBACK OFF;
SET HEADING OFF;

SPOOL /bmd/mail_check.txt

select
CASE
          WHEN Count(*) > 1
              THEN 'Archiving task was executed succesfully!'
              ELSE 'Archiving task was not executed succesfully for day: ' || Days
          END CASE
from
(select substr(table_name,12,8) as Days from user_tables
where table_name like 'CDR_DETAIL_%' AND SubStr(table_name,12,8) IN ( SELECT * FROM tmp_archive_process_ict )
OR SubStr(table_name,12,8) IS null
order by 1 asc )
where rownum <= 7
GROUP BY Days
;

SPOOL OFF;
EXIT;
EOF

スクリプトは機能し、ファイルを生成しますが、ファイルをチェックすると ( cat /bmd/mail_check.txt )、次のように表示されます。

Archiving task was executed succesfully!

指定されたファイルへのSQL選択からの他の結果が表示されない理由がわかりません。

Archiving task was not executed succesfully for day: 20130819
Archiving task was not executed succesfully for day: 20130821
Archiving task was not executed succesfully for day: 20130820

私は何を間違っていますか?

前もって感謝します。

よろしくお願いします、

4

0 に答える 0