gpt4 book ai didi

java - 在 PL/SQL 中重写 java 代码的挑战

转载 作者:太空宇宙 更新时间:2023-11-04 12:00:12 24 4
gpt4 key购买 nike

我有一个 PL/SQL 文件,其中的过程仅包含 Java 代码。

以下是Java代码开始之前的声明:

CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "fnd_log_file_handler" AS

此 Java 代码执行各种文件操作(复制、检查长度、迭代文件数组、检查文件对象是否是目录等)和 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;

还有一种方法会被重复调用。它返回文件夹中与特定名称模式匹配的文件列表。它使用比较器来过滤结果。以下是代码摘录

/**
* 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;
}

我希望删除 java 依赖项,以防 JVM 将来从数据库中删除。是否可以编写 PL/SQL 代码来包含所有这些逻辑?如果没有,我还有什么其他选择?如有任何反馈,我们将不胜感激。

最佳答案

是的,在 PL/SQL 中是可能的。要使用文件系统中的文件,您需要查看 Oralce UTL_FILE 包,请参阅:Oracle UTL_FILE documentation

要与 Java 中的列表类似地工作,您可以在 PL/SQL 代码中使用自定义类型和该类型的表。

PL/SQL 足够强大,可以完成这样的逻辑

关于java - 在 PL/SQL 中重写 java 代码的挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40984372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com