|
oracle里可以使用多种语言来编写存储过程,比如pro*c/c++,pl/sql,cobol,在oracle8i开始支持用java编写存储过程。
如果非要写存储过程的话,做为以java谋生的我,首选用java编写,用pl/sql需要记忆很多的语法(pascal类的语法)和函数,远不如使用java/jdbc这么轻车熟路。而且,db2等数据库都支持java存储过程,所以不比为每一种数据学习一种编写存储过程的方法了。
java存储过程与一般的jdbc程序有所不同的是:
1.有安全限制,毕竟是在oracle内部运行的,不允许访问操作系统的资源,如文件。
2.获取数据库联接方式,connection = new oracledriver().defaultconnection();
3.system.out,system.err,system.in等输入输出有所不同。可以利用某些命令重定向。
下面用java 存储过程写一个hello world的例子。
1)在plsqldeveloper里,java source里增加一个testjava1类,
代码
create or replace and compile java source named testjava1 as
public class testjava1
{
public static void test()
{
system.out.println("hello");
}
}
执行它,以保存并编译。
2)增加一个procedure,执行如下命令:
代码
create or replace procedure testjava1
as
language java name 'testjava1.test()';
3)在command window里输入
代码
set serveroutput on;
call dbms_java.set_output(2000);
以使system.out重定向到当前窗口;
在command window里输入,exec testjava1();
即可看到结果:
hello
pl/sql procedure successfully completed
|