Javaコードのみを含むプロシージャを持つPL/SQLファイルがあります。 Javaコードが始まる前に、次のPL/SQLでJavaコードを書き直す際の課題
は宣言です:
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "fnd_log_file_handler" AS
このJavaコードは、さまざまなファイル操作(コピー、チェックの長さを実行し、ファイルの配列を反復処理、Fileオブジェクトがディレクトリであるかどうかを確認します、など)とDOM操作/ XML解析(指定されたXML文字列からXMLドキュメントオブジェクトを作成)さらに、Processオブジェクトを返すRuntime.exec()Javaメソッドを使用して外部コマンドを呼び出しています。インポートされるパッケージは次のとおりです。
import java.nio.channels.FileChannel;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
繰り返し呼び出されるメソッドが1つあります。特定の名前パターンに一致するフォルダ内のファイルのリストを返します。 Comparatorを使用して結果をフィルタリングします。以下はコードの抜粋です
/**
* This API returns list of files in a folder matching particular name pattern.
* @param path - Path to the directory to get list of files
* @param pattern - Pattern for file names to look for. All files with name
* starting with this pattern will be returned from the API
* @return - Sorted list of files.
*/
private static File[ ] listFilesInOrder (String path, String pattern,
Comparator <File> compareFunc)
{
BASEFILENAME = pattern;
File lFile = new File (path);
File[] arrayFileList = lFile.listFiles(new FilenameFilter() {
public boolean accept(File f, String s) { return s.startsWith(BASEFILENAME + INDEX_SPERATOR); }
});
if(arrayFileList!=null)
{
Arrays.sort(arrayFileList, compareFunc);
}
return arrayFileList;
}
今後JVMがDBから削除される場合のJava依存性を削除したいと考えています。このロジックをすべて組み込むためにPL/SQLコードを記述することは可能ですか?そうでない場合、私の他の選択肢は何ですか?どんなフィードバックもありがとうございます。
今後DBからJVMが削除される場合は、 – Kayaman
@Kayaman JavaはOracleデータベースのオプションコンポーネントです。残念なことに、DBAがJavaを削除するのは一般的ではありません。それは愚かですが、それが起こるので、可能であればJavaの依存関係を回避しようとするのが賢明です。 –
@JonHellerこのような状況で対処法はありますか?このコードは、DB内から呼び出せる独立したJavaファイルとしてまだ存在していますか? PL/SQLでこのロジックをすべて翻訳することが可能かどうかはわかりません。 – Pha3drus