• [转]如何在Oracle中使用Java存储过程 (详解)


    From: http://hi.baidu.com/hexiong/blog/item/a6464954848d6c50574e006c.html

    java存储过程今后将在各大数据库厂商中越来越流行,功能也越来越强大。这里以Oracle为例,介绍一下java存储过程的具体用法。
    任何转载,请尊重版权。(作者:iihero on csdn)

    一、如何创建java存储过程?
    通常有三种方法来创建java存储过程。

    1. 使用oracle的sql语句来创建:

    e.g. 使用create or replace and compile java source named "<name>" as
           后边跟上java源程序。要求类的方法必须是public static的,才能用于存储过程。

    SQL> create or replace and compile java source named "javademo1"
      
    2  as
      
    3   import java.sql.*;
      
    4  public class JavaDemo1
      
    5   {
      
    6  public static void main(String[] argv)
      
    7   {
      
    8   System.out.println("hello, java demo1");
      
    9   }
    10   }
    11  /

    Java 已创建。

    SQL
    > show errors java source "javademo1"
    没有错误。

    SQL
    > create or replace procedure javademo1
      
    2  as
      
    3   language java name 'JavaDemo1.main(java.lang.String[])';
      
    4  /

    过程已创建。

    SQL
    > set serveroutput on
    SQL
    > call javademo1();

    调用完成。

    SQL
    > call dbms_java.set_output(5000);

    调用完成。

    SQL
    > call javademo1();
    hello, java demo1

    调用完成。

    SQL
    > call javademo1();
    hello, java demo1
    调用完成。

    2. 使用外部class文件来装载创建
    e.g. 这里既然用到了外部文件,必然要将class文件放到oracle Server的某一目录下边。

    public class OracleJavaProc
    {
        
    public static void main(String[] argv)
         {
             System.out.println("It
    's a Java Oracle procedure.");
         }
    }


    SQL> grant create any directory to scott;

    授权成功。

    SQL> conn scott/tiger@iihero.oracledb
    已连接。
    SQL> create or    replace    directory    test_dir    as  
    'd:\oracle';

    目录已创建。

    SQL> create or replace java class using bfile(test_dir,
    'OracleJavaProc.CLASS')
       2   /

    Java 已创建。

    SQL> create or replace procedure testjavaproc as language java name
    'OracleJavaProc.main(java.lang.String[])';
       2   /

    过程已创建。

    SQL> call testjavaproc();

    调用完成。

    SQL> execute testjavaproc;

    PL/SQL 过程已成功完成。

    SQL> set serveroutput on size 5000
    SQL> call dbms_java.set_output(5000);

    调用完成。

    SQL> execute testjavaproc;
    It
    's a Java Oracle procedure.
  • 相关阅读:
    正则表达式大全
    函数基础(二)
    函数基础(一)
    bzoj3531 [Sdoi2014]旅行
    bzoj4785 [Zjoi2017]树状数组
    bzoj4568 [Scoi2016]幸运数字
    bzoj1975 [Sdoi2010]魔法猪学院
    bzoj1079 [SCOI2008]着色方案
    bzoj1996 [Hnoi2010]chorus 合唱队
    bzoj2326 [HNOI2011]数学作业
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/1872473.html
Copyright © 2020-2023  润新知