如何在Oracle中使用Java存储过程

如何在Oracle中使用Java存储过程 (详解)
文章来源:http://hi.baidu.com/hexiong/blog/item/a6464954848d6c50574e006c.html
2008年03月05日 星期三 14:19

其实,这篇短文,我早就应该写了。因为,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 .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值