第一步:首先创建遍历文件夹的 java source ,这里主要是编写Oracle 可以执行的 Java 代码
代码如下:
create or replace and compile java source named filesystems as
import java.io.File;
import java.util.ArrayList;
public class FileSystemS{
public static String refreshFileList(String strPath) {
ArrayList filelist = new ArrayList();
String fileListName= new String();
File dir = new File(strPath);
File[] files = dir.listFiles();
if (files == null) {
return strPath+"文件目录不存在或者文件目录下没有文件! ";
}
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
refreshFileList(files[i].getAbsolutePath());
} else {
String strFileName = files[i].getAbsolutePath().toLowerCase();
//fileListName+=" "+i+" : "+strFileName +" ; ";
fileListName+=" "+i+" : "+ files[i].getName() +" ; ";
filelist.add(files[i].getAbsolutePath());
}
}
return fileListName;
}
}
直接使用Oracle 的 PLSQL 执行,将会生成一个java source .
第二步:创建调用function ,当然也可以是存储过程。这里我使用函数。
create or replace function FileTest(s in varchar) return varchar
is LANGUAGE JAVA NAME 'FileSystemS.refreshFileList(java.lang.String) return String' ;
第三步:测试
SELECT FileTest('E:\javaWP') from dual;