- ベストアンサー
テーブル名を指定してCsv出力
こんにちは。 Oracle 9iで開発をしているのですが、 PL/SQLで引数にテーブル名(物理名)を渡せば そのテーブルのデータを全件ファイルに出力するような 処理は書けるでしょうか? お力を貸してください。 よろしくおねがいします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 > データを全件ファイルに出力するような処理は書けるでしょうか? PL/SQL だけでやろうとすると、かなり強引な開発をしないといけません。 バイナリデータの扱いとかは、かなり面倒だと思います. 詳細は、「PL/SQL ユーザーズガイド」の動的SQL を確認して下さい。 SQL*Plus を使って、 connect ユーザ名/パスワード set pages 0 set lines 9999 set long 9999 set trimspool on set heading off set echo off set colsep , alter session set NLS_DATE_FORMAT = 'DATE型出力形式'; alter session set NLS_TIMESTAMP_FORMAT = 'TIMESTAMP型出力形式'; spool hogehoge.csv select * from スキーマ名.テーブル名; spool off とかすれば、どうでしょう?
お礼
回答ありがとうございます。 >PL/SQL だけでやろうとすると、かなり強引な開発をしないといけません。 >バイナリデータの扱いとかは、かなり面倒だと思います. そうですか。 現実的には回避策を探すとして、強引な開発をすれば可能なんですか? 動的カーソルにしても、フェッチした(自動でされた)た変数に対して カラムを指定できないので、データが取れないですし。。。 order句みたいにインデックスでデータ取得もできないし。 自分で考え付いたのは全部試してみたのですが、 すべて失敗に終わりました。 例に挙げていただいた、SQL*PLUSに引数をつけて バッチからキックする方法でなんとかやってみたいと思います。 ありがとうございました。