今天又有朋友问我如何使用java存储过程,这使我又想起有人曾在pub上讨论过使用java存储过程来处理目录与文件的的问题,借用我在那个贴子里写的例程作一个简要实用的使用过程演示(参见 “用什么方法判断文件是否存在?”):
首先,数据库必须选择安装了Oracle JVM组件,配置合适的初始化参数:JAVA_POOL_SIZE
1. 写一个文本文件 FileDemo.java, 内容如下:
import java.io.*;
public class FileDemo {
public static String p(String s) {
File f1 = new File(s);
if (f1.isFile()) {
return "File";
}
else if (f1.isDirectory()) {
return "Directory";
}
else {
return "Not exists";
}
}
}
2.编译成class
$ javac FileDemo.java
可以看到当前目录下多了一个 FileDemo.class
3.把 FileDemo.class加载到数据库
$loadjava -user scott/tiger FileDemo.class
4. 给scott用户赋权:
$sqlplus / as sysdba
SQL> grant javauserpriv to scott;
5. 建立JAVA函数:
$sqlplus scott/tiger
SQL> CREATE OR REPLACE FUNCTION file_exist(a_file VARCHAR2) RETURN VARCHAR2
2> AS LANGUAGE JAVA
3> NAME 'FileDemo.p(java.lang.String) return java.lang.String';
4>/
6. 测试:
$sqlplus scott/tiger
SQL>select file_exist('/tmp/jjjj') from dual
FILE_EXIST('/TMP/JJJJ')
-----------------------------
Not exists
SQL> select file_exist('/tmp') from dual;
FILE_EXIST('/TMP')
----------------------------
Directory
SQL> select file_exist('/tmp/FileDemo.class') from dual;
FILE_EXIST('/TMP/FILEDEMO.CLASS')
----------------------------------------
File
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/950/viewspace-142939/
,如需转载,请注明出处,否则将追究法律责任。