欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何在Oracle中使用Java存储过程 (详解) 博客分类: Oracle JavaOracleSQLSQL ServerJDBC 

程序员文章站 2024-03-22 14:52:40
...

其实,这篇短文,我早就应该写了。因为,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的,才能用于存储过程。

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>createorreplaceandcompilejavasourcenamed"javademo1"
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
2as
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
3importjava.sql.*;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
4publicclassJavaDemo1
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
5{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
6publicstaticvoidmain(String[]argv)
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
7{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
8System.out.println("hello,javademo1");
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
9}
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
10}
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
11/
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC Java已创建。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>showerrorsjavasource"javademo1"
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 没有错误。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>createorreplaceprocedurejavademo1
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
2as
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
3languagejavaname'JavaDemo1.main(java.lang.String[])';
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
4/
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 过程已创建。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>setserveroutputon
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>calljavademo1();
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 调用完成。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>calldbms_java.set_output(5000);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 调用完成。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>calljavademo1();
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC hello,javademo1
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 调用完成。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>calljavademo1();
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC hello,javademo1
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 调用完成。

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

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC publicclassOracleJavaProc
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC {
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
publicstaticvoidmain(String[]argv)
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC {
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC System.out.println("It
'saJavaOracleprocedure.");
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>grantcreateanydirectorytoscott;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 授权成功。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>connscott/tiger@iihero.oracledb
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 已连接。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>createorreplacedirectorytest_diras
'd:\oracle';
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 目录已创建。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>createorreplacejavaclassusingbfile(test_dir,
'OracleJavaProc.CLASS')
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 2/
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC Java已创建。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>createorreplaceproceduretestjavaprocaslanguagejavaname
'OracleJavaProc.main(java.lang.String[])';
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 2/
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 过程已创建。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>calltestjavaproc();
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 调用完成。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>executetestjavaproc;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC PL/SQL过程已成功完成。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>setserveroutputonsize5000
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>calldbms_java.set_output(5000);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 调用完成。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>executetestjavaproc;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC It
'saJavaOracleprocedure.

3. 我推荐的一种方法,直接使用loadjava命令远程装载并创建。
先创建一个类, e.g.

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC importjava.sql.*;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
importoracle.jdbc.*;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
publicclassOracleJavaProc...{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
//Addasalgradetothedatabase.
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
publicstaticvoidaddSalGrade(intgrade,intlosal,inthisal)...{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC System.out.println(
"CreatingnewsalgradeforEMPLOYEE...");
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
try...{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC Connectionconn
=
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC DriverManager.getConnection(
"jdbc:default:connection:");
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC Stringsql
=
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
"INSERTINTOsalgrade"+
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
"(GRADE,LOSAL,HISAL)"+
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
"VALUES(?,?,?)";
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC PreparedStatementpstmt
=conn.prepareStatement(sql);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC pstmt.setInt(
1,grade);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC pstmt.setInt(
2,losal);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC pstmt.setInt(
3,hisal);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC pstmt.executeUpdate();
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC pstmt.close();
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
catch(SQLExceptione)...{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC System.err.println(
"ERROR!AddingSalgrade:"
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
+e.getMessage());
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

使用loadjava命令将其装载到服务器端并编译:

D:eclipse3.1workspacedbtest>loadjava-uscott/tiger@iihero.oracledb-v-resolveOr
acleJavaProc
.java
arguments:'-u''scott
/tiger@iihero.oracledb'-v''-resolve''OracleJavaProc.java'
creating:sourceOracleJavaProc
loading:sourceOracleJavaProc
resolving:sourceOracleJavaProc

查询一下状态:

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 连接到:
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC Oracle9iEnterpriseEditionRelease
9.2.0.1.0-Production
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
WiththePartitioning,OLAPandOracleDataMiningoptions
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC JServerRelease
9.2.0.1.0-Production
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>SELECTobject_name,object_type,statusFROMuser_objectsWHEREobject_typeLIKE'JAVA%';
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
OBJECT_NAME
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
--------------------------------------------------------------------------------
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC OBJECT_TYPESTATUS
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
--------------------------------------------------
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
OracleJavaProc
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC JAVACLASSVALID
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC OracleJavaProc
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC JAVASOURCEVALID

测试一下存储过程:

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL>createorreplaceprocedureadd_salgrade(idnumber,losalnumber,hisalnum
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC ber)
aslanguagejavaname'OracleJavaProc.addSalGrade(int,int,int)';
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
2/
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 过程已创建。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>setserveroutputonsize2000
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>calldbms_java.set_output(2000);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 调用完成。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>executeadd_salgrade(6,10000,15000);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC Creatingnewsalgrade
forEMPLOYEE...
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC PL
/SQL过程已成功完成。
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC SQL
>select*fromsalgradewheregrade=6;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC GRADELOSALHISAL
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
------------------------------
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
61000015000

二、如何更新你已经编写的java存储过程?

假如要往类OracleJavaProc里添加一个存储过程方法,如何开发?
正确的步骤应该是先dropjava, 改程序,再loadjava。

e.g.修改OracleJavaProc类内容如下:

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC importjava.sql.*;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
importoracle.jdbc.*
;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
publicclassOracleJavaProc...
{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
//Addasalgradetothedatabase.

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
publicstaticvoidaddSalGrade(intgrade,intlosal,inthisal)...{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC System.out.println(
"CreatingnewsalgradeforEMPLOYEE..."
);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
try...
{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC Connectionconn
=

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC DriverManager.getConnection(
"jdbc:default:connection:");
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC Stringsql
=

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
"INSERTINTOsalgrade"+
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
"(GRADE,LOSAL,HISAL)"+
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
"VALUES(?,?,?)";
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC PreparedStatementpstmt
=
conn.prepareStatement(sql);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC pstmt.setInt(
1
,grade);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC pstmt.setInt(
2
,losal);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC pstmt.setInt(
3
,hisal);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC pstmt.executeUpdate();
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC pstmt.close();
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
catch(SQLExceptione)...{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC System.err.println(
"ERROR!AddingSalgrade:"

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
+
e.getMessage());
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
publicstaticintgetHiSal(intgrade)
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
...
{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
try...
{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC Connectionconn
=

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC DriverManager.getConnection(
"jdbc:default:connection:");
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC Stringsql
="SELECThisalFROMsalgradeWHEREgrade=?"
;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC PreparedStatementpstmt
=
conn.prepareStatement(sql);pstmt.setInt(1, grade);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC ResultSetrset
=
pstmt.executeQuery();
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
intres=0
;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
if
(rset.next())
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
...
{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC res
=rset.getInt(1
);
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC rset.close();
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
returnres;
}
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
catch
(SQLExceptione)
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
...
{
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC System.err.println(
"ERROR!QueryingSalgrade:"

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
+
e.getMessage());
return -1;
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC 
如何在Oracle中使用Java存储过程 (详解)
            
    
    博客分类: Oracle JavaOracleSQLSQL ServerJDBC }

如何更新呢?

D:eclipse3.1workspacedbtest>dropjava-uscott-vOracleJavaProc

D:
/
tiger@iihero.oracledbeclipse3.1workspacedbtest>loadjava-uscott-v-resolveOr
acleJavaProc
/
tiger@iihero.oracledb.java
arguments:'-u''scott
/tiger@iihero.oracledb''-v''-resolve''OracleJavaProc.
java'
creating:sourceOracleJavaProc
loading:sourceOracleJavaProc
resolving:sourceOracleJavaProc

后边的应用示例:

SQL>createorreplacefunctionquery_hisal(gradenumber)returnnumberaslangu
agejavaname
'OracleJavaProc.getHiSal(int)returnint'
;
2/


函数已创建。

SQL
>setserveroutputonsize2000
SQL
>calldbms_java.set_output(2000);

调用完成。
SQL
>selectquery_hisal(5)from
dual;

QUERY_HISAL(
5
)
--------------

9999

全文完!

用法个人见解:不要手动drop java source, 不要手动drop procedure。