Windowsのタスクでバッチファイルを実行し、Oracleの任意のテーブルをcsvファイルに出力したいときは、バッチファイルとSQL文を用意してタスクに追加するだけ。
Miuran Business Systemsのオフィシャルサイト。システム開発を行う企業で、略称はMBS、2008年1月設立。 スプール出力を格納するファイルの名前を指定します。spool ... set sqlpluscompat[ibility]コマンドで制御する機能を判断するには、「 sql*plus 互換性マトリックス 」を参照してください。 spoolコマンドの例. この出力結果だと、以下のような問題があります。 1レコード全体が見れない; 表示された値が何の項目だかわからない; この問題を解決するため、select文をcsv形式に出力する. sqlplusのオプション -s を指定したら、クエリは出力されなかったと思います。 こんな感じでどうでしょう。 sqlplus -s user/password @r_test.sql SQL*PlusでSQLを記述した外部ファイルを実行する方法SQLを記述した外部ファイルをSQL*Plusで実行する方法を解説します。結論からいうと実行したいファイル名の前に「@」をつけるだけで実行可能です。今回は以下のフォルダとファイル構 例2)バッチファイル(sample.sql)で使用する. 冒頭の「シンプルな実行例」にあるように、標準入力で渡したSQL文は標準出力に出力されません。 SQL*Plus の実行結果をログに出力したい場合、標準出力だけを使っているとSQL文がログに残らない(実行結果はログに残る)ということに注意が必要です。 spoolを使用してログを出力する方法基本構文は、以下になります。「spool ファイル名」で問い合わせの結果を任意のファイル名に出力する設定をします。「spool off」で出力停止の設定をします。spool使用例今回は、「c:\temp 力技そのいち SQL*Plusの列区切り文字を「,」にする。 利点は、なんといっても手軽さ。 欠点 可変長項目が固定長になってしまう。 その為NULLとスペース埋めや、末尾スペースの存在等が判別不可。 複数テーブルを一気に取得できない。 力技そのに 列を「,」で繋げるSQLを発行する。 SQL> @test.sql DU -- X SQL> @test.sql 通常は結果が表示されるが、off を設定した場合は結果が表示されない。 ただこのままでは結果が見れないため、スクリプトファイル内でスプールしておく。 spool kekka.log select * from dual; spool off % cat kekka.log DU -- X 関連記事 Miuran Business Systemsのオフィシャルサイト。システム開発を行う企業で、略称はMBS、2008年1月設立。 SQL Plus を使用して CSV ファイルを出力する方法です。 業務用途などで定期的にCSV出力する場合などはいろいろと要件があったりして作りこむことが多いですが、 現場でちょっとcvs出力したい場合などはこっちの方が便利かもしれません。 sqlplus echo @ や START で SQL スクリプトファイルを実行した場合、 デフォルトでは結果のみが表示され、実行コマンドそのものが出力されない。 でも、状況によってコマンドエコーを表示したいこと … 以下のファイルを作成します。 (sample.sql) prompt 現在日付を出力します。 select sysdate from dual; 実行例 SQL> @sample.sql 現在日付を出力します。 SYSDATE ----- 17-09-24 SQL> 解説. Oracle SQL*PlusのSPOOLは、SQLの実行結果をファイルへ出力するコマンドです。この記事では、SPOOLの使い方、オプションや出力先、文字コードの指定方法をご紹介します。 短縮形の「pro」でもOKです。 Oracle SQL*Plusで、SPOOLコマンドを使用すると、SQL実行の結果はファイルに出力されますが、実行したSQL自身が出力されません。SETコマンドで制御できるのではないかと思いましたが、ちょっと見当たりませんでした。何か方法はないでし