我知道在oracle中可以使用java写的类,但是我不知道怎么样在oracle中写的类怎么样去调用我在工程中的类或继承我在工程中的类......

解决方案 »

  1.   

    如何创建一个简单的JAVA存储过程?· 软件环境: 
    1、操作系统:Windows 2000 Server
    2、数 据 库:Oracle 8i R2 (8.1.7) for NT 企业版
    3、安装路径:C:\ORACLE
    · 实现方法: 
    · 1、   创建一个文件为TEST.java
    ·           public class TEST
    ·           {
    ·             public static void main (String args[]) 
    ·           {
    ·                 System.out.println("HELLO THIS iS A JAVA PROCEDURE");
    ·           }
    ·           }
    · 2、   javac TEST.java
    · 3、   java TEST
     
    4、   SQL> conn system/manager
    SQL> grant create any directory to scott;
    SQL> conn scott/tiger
    SQL> create or replace directory test_dir as 'd:\';
     
    目录已创建。
     
    SQL> create or replace java class using bfile(test_dir,'TEST.CLASS')
      2  /
     
    Java 已创建。
     
    SQL> select object_name,object_type,STATUS from user_objects;
     
    SQL> create or replace procedure test_java 
         as language java 
         name 'TEST.main(java.lang.String[])';
         /
     
    过程已创建。
     
    SQL> set serveroutput on size 5000
    SQL> call dbms_java.set_output(5000);
     
    调用完成。
     
    SQL> execute test_java;
    HELLO THIS iS A JAVA PROCEDURE
     
    PL/SQL 过程已成功完成。
     
    SQL> call test_java();
    HELLO THIS iS A JAVA PROCEDURE
     
    调用完成。
      

  2.   

    从Oracle9i版本2开始,loadjava允许通过为包含在被处理的类中的方法创建相应的Call Specs来自动将Java类发布为存储过程。Oracle为开发、测试、调试和布置Java存储过程提供了Oracle9i JDeveloper。The Resolver Spec 基于JDK的JVM在列于CLASSPATH中的目录中查找类引用,并对其进行解析。因为Oracle数据库类存在于数据库模式中,所以OracleJVM利用数据库解析器(resolver)通过列于Resolver Spec中的模式查找并解析类引用。与CLASSPATH不同(CLASSPATH可以应用于所有的类),Resover Spec根据每类的情况进行应用。缺省解析器首先在加载类的模式中搜寻类,然后在公共同义词(public synonyms)中搜索。 
    loadjava -resolve <myclass> 
    你可能需要指定不同的解析器,也可以在使用loadjava时强制进行解析,从而在布置时确定可能在以后运行时发生的任何问题。 
    loadjava -resolve -resolver "((* SCOTT) (foo/bar/* OTHERS) (* PUBLIC))" 
    Call Spec和存储过程调用