知识大全 在Oracle中使用Java存储过程

Posted 过程

篇首语:须知少年凌云志,曾许人间第一流。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Oracle中使用Java存储过程相关的知识,希望对你有一定的参考价值。

在Oracle中使用Java存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Java存储过程今后在各大数据库厂商中越来越流行 功能也越来越强大 这里以Oracle为例 介绍一下java存储过程的具体用法    一 如何创建java存储过程?    通常有三种方法来创建java存储过程     使用oracle的sql语句来创建     e g 使用create or replace and pile java source named <name> as    后边跟上java源程序 要求类的方法必须是public static的 才能用于存储过程     SQL> create or replace and pile java source named javademo         as        import java sql *;        public class JavaDemo                 public static void main(String[] argv)                System out println( hello java demo )                     /        Java 已创建         SQL> show errors java source javademo     没有错误         SQL> create or replace procedure javademo         as        language java name JavaDemo main(java lang String[]) ;        /        过程已创建         SQL> set serveroutput on    SQL> call javademo ()         调用完成         SQL> call dbms_java set_output( )         调用完成         SQL> call javademo ()     hello java demo         调用完成         SQL> call javademo ()     hello java demo     调用完成

   使用外部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 )        /        Java 已创建         SQL> create or replace procedure testjavaproc as language java name OracleJavaProc main(java lang String[]) ;        /        过程已创建         SQL> call testjavaproc()         调用完成         SQL> execute testjavaproc;        PL/SQL 过程已成功完成         SQL> set serveroutput on size     SQL> call dbms_java set_output( )         调用完成         SQL> execute testjavaproc;    It s a Java Oracle procedure 我推荐的一种方法 直接使用loadjava命令远程装载并创建     先创建一个类 e g     import java sql *;    import oracle jdbc *;        public class OracleJavaProc            //Add a salgrade to the database        public static void addSalGrade(int grade int losal int hisal)               System out println( Creating new salgrade for EMPLOYEE… )               try              Connection conn =                DriverManager getConnection( jdbc:default:connection: )                  String sql =                INSERT INTO salgrade +                (GRADE LOSAL HISAL) +                VALUES(? ? ?) ;             PreparedStatement pstmt = conn prepareStatement(sql)              pstmt setInt( grade)              pstmt setInt( losal)              pstmt setInt( hisal)              pstmt executeUpdate()              pstmt close()                        catch(SQLException e)              System err println( ERROR! Adding Salgrade:                + e getMessage())                             使用loadjava命令将其装载到服务器端并编译     D:eclipse workspacedbtest>loadjava u scott/tiger@iihero oracledb v resolve Or    acleJavaProc java    arguments: u scott/tiger@iihero oracledb v resolve OracleJavaProc java     creating : source OracleJavaProc    loading  : source OracleJavaProc    resolving: source OracleJavaProc 查询一下状态     连接到     Oracle i Enterprise Edition Release Production    With the Partitioning OLAP and Oracle Data Mining options    JServer Release Production        SQL> SELECT object_name object_type status FROM user_objects WHERE object_type LIKE JAVA% ;        OBJECT_NAME            OBJECT_TYPE                          STATUS        OracleJavaProc    JAVA CLASS                           VALID        OracleJavaProc    JAVA SOURCE                          VALID    测试一下存储过程     SQL> create or replace procedure add_salgrade(id number losal number hisal num    ber) as language java name OracleJavaProc addSalGrade(int int int) ;        /        过程已创建         SQL> set serveroutput on size     SQL> call dbms_java set_output( )         调用完成         SQL> execute add_salgrade( )     Creating new salgrade for EMPLOYEE…        PL/SQL 过程已成功完成         SQL> select * from salgrade where grade= ;             GRADE      LOSAL      HISAL                             二 如何更新你已经编写的java存储过程?    假如要往类OracleJavaProc里添加一个存储过程方法 如何开发?    正确的步骤应该是先dropjava 改程序 再loadjava     e g 修改OracleJavaProc类内容如下     import java sql *;    import oracle jdbc *;        public class OracleJavaProc            // Add a salgrade to the database        public static void addSalGrade(int grade int losal int hisal)               System out println( Creating new salgrade for EMPLOYEE… )               try              Connection conn =                DriverManager getConnection( jdbc:default:connection: )                  String sql =                INSERT INTO salgrade +                (GRADE LOSAL HISAL) +                VALUES(? ? ?) ;             PreparedStatement pstmt = conn prepareStatement(sql)              pstmt setInt( grade)              pstmt setInt( losal)              pstmt setInt( hisal)              pstmt executeUpdate()              pstmt close()                        catch(SQLException e)              System err println( ERROR! Adding Salgrade:                + e getMessage())                                public static int getHiSal(int grade)               try             Connection conn =              DriverManager getConnection( jdbc:default:connection: )             String sql = SELECT hisal FROM salgrade WHERE grade = ? ;            PreparedStatement pstmt = conn prepareStatement(sql) pstmt setInt( grade)             ResultSet rset = pstmt executeQuery()             int res = ;            if (rset next())                            res = rset getInt( )                         rset close()             return res;                   catch (SQLException e)                    System err println( ERROR! Querying Salgrade:                + e getMessage())               return ;                           如何更新呢?    D:eclipse workspacedbtest>dropjava u scott v OracleJavaProc        D:/tiger@iihero oracledbeclipse workspacedbtest>loadjava u scott v resolve Or    acleJavaProc/tiger@iihero oracledb java    arguments: u scott/tiger@iihero oracledb v resolve OracleJavaProc java     creating : source OracleJavaProc    loading  : source OracleJavaProc    resolving: source OracleJavaProc    后边的应用示例     SQL> create or replace function query_hisal(grade number) return number as langu    age java name OracleJavaProc getHiSal(int) return int ;        /        函数已创建         SQL> set serveroutput on size     SQL> call dbms_java set_output( )         调用完成     SQL> select query_hisal( ) from dual;        QUERY_HISAL( )                  cha138/Article/program/Java/hx/201311/25916

相关参考

知识大全 在Oracle中用java编写存储过程

在Oracle中用java编写存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracl

知识大全 java调用oracle存储过程

  一无返回值的存储过程  存储过程为  CREATEORREPLACEPROCEDURETESTA(PARAINVARCHARPARAIN VARCHAR) 

知识大全 如何调试oracle存储过程

  PL/SQL中为我们提供了调试存储过程的功能可以帮助你完成存储过程的预编译与测试  点击要调试的存储过程右键选择TEST  如果需要查看变量当然调试都需要在右键菜单中选择Adddebuginfor

知识大全 VFP中调用Oracle的存储过程

VFP中调用Oracle的存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  VFP由于其通

知识大全 了解Oracle存储过程中的角色

了解Oracle存储过程中的角色  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  角色(数据库权限

知识大全 oracle存储过程中使用事务管理

  存储过程里的事务操作  createorreplaceprocedurepr_mypro(p_ainvarcharp_binvarcharp_countoutnumber)  tempvarcha

知识大全 Jsp中调用Oracle存储过程的小例子

Jsp中调用Oracle存储过程的小例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  /*执行

知识大全 oracle存储过程编译时的一些错误

  Error:PLS:必须说明标识符DATETIMELine:Text:aadatetime在oracle中没有datetime类型=================================

知识大全 调用Oracle数据库中的存储过程需要两步走

调用Oracle数据库中的存储过程需要两步走  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  存储

知识大全 在Java中调用Oracle包中的过程

在Java中调用Oracle包中的过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一先在or