plsqlスクリプトを作成しました。スクリプトは、いくつかの基準に基づいて複数のテーブルからデータをフェッチし、データをコンマ区切り形式にフォーマットします。現在、フェッチされるデータは、行数と行サイズの点で膨大です。そのデータをcsvファイルに入れたい。私は次のことをやってみました:
- DBMS_OUTPUT.PUT_LINEでスプールを使用します。DBMS_OUTPUT.ENABLEの制限は20000バイトのみであるため、私のレコードはスプールファイルの途中に表示されます。
- utl_fileを使用すると、csvファイルで取得できますが、問題は、データベースが他のマシンに(物理的に)存在し、アプリケーションが他のマシンに存在することです。したがって、plsqlスクリプトを起動すると、データベースマシンにそのファイルが作成されます。また、utl_fileでは、データベースマシン上にディレクトリオブジェクトを作成する必要があります。これは、まもなくセキュリティ上の懸念事項になります。
とにかく、plsqlスクリプトの出力をアプリケーションマシン(データベースマシンではない)にあるファイルにパイプできることはありますか?また、Javaなどの他のプログラミング言語でも解決策を提案できます。