Oracle データベース 10g を使用しています。サーバーでファイルを呼び出して、ユーザーのマシンにローカルに保存できるようにするためのJava stroedプロシージャを作成する必要があります。Oracle Apex 3.1.1を使用しています。
4 に答える
真の Oracle Java ストアド プロシージャについて話しているのであれば、これはできないと思います。Java プロシージャは、データベース内の Oracle JVM の下で実行されていることに注意してください。つまり、データベース ホスト ファイルシステムのみを「参照」できます。
なぜJavaストアドプロシージャなのか?PL / SQLでは実行できないと思うからですか?
PL/SQLにはいくつかのFTP実装があります。 Sourceforgeには1つあります。Tim Hallは、彼のOracle-Baseサイトに1つ公開しています。
Javaでなければならない理由はありますか?PL/SQL の DBMS_FILE は、通常は正常に機能します。
それ以外の場合は、Java ストアド プロシージャを長い間使用していないため、Java でいつも行っているように IO ストリームを開くことができるはずです。
APEX 3.1 を使用しているのに、APEX (つまり Web サーバー) を介してサーバー上のファイルへのリンクを簡単に作成して、ファイルをダウンロードできる理由はありますか?
UTL_FILE パッケージを介してこれを行うこともできますが、最初に CREATE DIRECTORY を実行し、ディレクトリで READ を付与することを忘れないでください。
Javaを介してファイルを開くこともできると思いますが、最初に権限を付与して、システム上のディレクトリへのOracleプロセスアクセスを許可する場合に限ります。これは最も複雑な方法のようです。