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类,
Java代码
  
  
执行它,以保存并编译。
  
2)增加一个procedure,执行如下命令:
Java代码
  
  
  
3)在command window里输入
Java代码
  
  
以使System.out重定向到当前窗口;
在command window里输入,exec testJava1();
即可看到结果:
  
Hello
  
PL/SQL procedure successfully completed
  
  
参考资料:
Oracle® Database Java Developer's Guide http://download-west.oracle.com/docs/cd/B19306_01/java.102/b14187/toc.htm
Sample:
http://www.oracle.com/technology/sample_code/tech/java/jsp/oracle9ijsp.html
 如果非要写存储过程的话,做为以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类,
Java代码
  
  - create or replace and compile java source named TestJava1 as
 - public class TestJava1
 - {
 - public static void test()
 - {
 - System.out.println("Hello");
 - }
 - }
 
执行它,以保存并编译。
2)增加一个procedure,执行如下命令:
Java代码
  
  - create or replace procedure testJava1 as language java name 'TestJava1.test()';
 
3)在command window里输入
Java代码
  
  - SET SERVEROUTPUT ON;
 - CALL dbms_java.set_output(2000);
 
以使System.out重定向到当前窗口;
在command window里输入,exec testJava1();
即可看到结果:
Hello
PL/SQL procedure successfully completed
参考资料:
Oracle® Database Java Developer's Guide http://download-west.oracle.com/docs/cd/B19306_01/java.102/b14187/toc.htm
Sample:
http://www.oracle.com/technology/sample_code/tech/java/jsp/oracle9ijsp.html

