zoukankan      html  css  js  c++  java
  • 用Java编写Oracle存储过程

    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代码 复制代码
    1. create or replace and compile java source named TestJava1 as  
    2. public class TestJava1  
    3. {  
    4.   public static void test()  
    5.    {  
    6.     System.out.println("Hello");  
    7.    }  
    8. }  
    create or replace and compile java source named TestJava1 as public class TestJava1 { public static void test() { System.out.println("Hello"); } }
    执行它,以保存并编译。

    2)增加一个procedure,执行如下命令:
    Java代码 复制代码
    1. create or replace procedure testJava1 as language java name 'TestJava1.test()';  
    create or replace procedure testJava1 as language java name 'TestJava1.test()';

    3)在command window里输入
    Java代码 复制代码
    1. SET SERVEROUTPUT ON;  
    2. CALL dbms_java.set_output(2000);  
    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
  • 相关阅读:
    每天一个Linux指令--httpd
    每天一个Linux指令--alias和unalias
    每天一个Linux指令--adduser
    每天一个Linux指令--ls
    VScode 配置c/c++环境(结合各大网站的blog和官方文档)
    关于大数组定义为全局变量和内部变量的一些区别
    关于simplememory theme的设置和感想
    第一次训练赛感受和题解
    短期目标-1
    家事杂谈
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400786.html
Copyright © 2011-2022 走看看