爱问知识人 爱问教育 医院库

在Oracle中使用Java的存储过程方法有哪些呢?

首页

在Oracle中使用Java的存储过程方法有哪些呢?

在Oracle中使用Java的存储过程方法有哪些呢?

提交回答

全部答案

    2017-07-26 08:17:20
  •   1。 使用oracle的sql语句来创建:
    e。g。 使用create or replace and compile java source named "" as
    后边跟上java源程序。要求类的方法必须是public static的,才能用于存储过程。
       1。SQL> create or replace and compile java source named "javademo1" 2。 2 as 3。 3 import java。sql。*; 4。 4 public class JavaDemo1 5。
       5 { 6。 6 public static void main(String[] argv) 7。 7 { 8。 8 System。out。println("hello, java demo1"); 9。 9 } 10。 10 } 11。
       11 / 12。 13。Java 已创建。 14。 15。SQL> show errors java source "javademo1" 16。没有错误。 17。 18。SQL> create or replace procedure javademo1 19。
       2 as 20。 3 language java name 'JavaDemo1。main(java。lang。String[])'; 21。 4 / 22。 23。过程已创建。 24。 25。SQL> set serveroutput on 26。
      SQL> call javademo1(); 27。 28。调用完成。 29。 30。SQL> call dbms_java。set_output(5000); 31。 32。调用完成。 33。 34。SQL> call javademo1(); 35。
      hello, java demo1 36。 37。调用完成。 38。 39。SQL> call javademo1(); 40。hello, java demo1 41。调用完成。2。 使用外部class文件来装载创建 e。g。
       这里既然用到了外部文件,必然要将class文件放到oracle Server的某一目录下边。 1。public class OracleJavaProc 2。{ 3。 public static void main(String[] argv) 4。
       { 5。 System。out。println("It's a Java Oracle procedure。"); 6。 } 7。} 8。 9。 10。SQL> grant create any directory to scott; 11。
       12。授权成功。 13。 14。SQL> conn scott/tiger@iihero。oracledb 15。已连接。 16。SQL> create or replace directory test_dir as 'd:/oracle'; 17。
       18。目录已创建。 19。 20。SQL> create or replace java class using bfile(test_dir, 'OracleJavaProc。CLASS') 21。 2 / 22。 23。Java 已创建。
       24。 25。SQL> create or replace procedure testjavaproc as language java name 'OracleJavaProc。main(java。lang。String[])'; 26。
       2 / 27。 28。过程已创建。 29。 30。SQL> call testjavaproc(); 31。 32。调用完成。 33。 34。SQL> execute testjavaproc; 35。 36。PL/SQL 过程已成功完成。
       37。 38。SQL> set serveroutput on size 5000 39。SQL> call dbms_java。set_output(5000); 40。 41。调用完成。 42。 43。SQL> execute testjavaproc; 44。
      It's a Java Oracle procedure。3。 我推荐的一种方法,直接使用loadjava命令远程装载并创建。 先创建一个类, e。g。 1。import java。sql。*; 2。import oracle。jdbc。
      *; 3。 4。public class OracleJavaProc { 5。 6。 //Add a salgrade to the database。 7。 public static void addSalGrade(int grade, int losal, int hisal) { 8。
       9。 System。out。println("Creating new salgrade for EMPLOYEE…"); 10。 11。 try { 12。 Connection conn = 13。 DriverManager。
      getConnection("jdbc:default:connection:"); 14。 15。 String sql = 16。 "INSERT INTO salgrade " + 17。 "(GRADE,LOSAL,HISAL) " + 18。
       "VALUES(?,?,?)"; 19。 PreparedStatement pstmt = conn。prepareStatement(sql); 20。 pstmt。setInt(1,grade); 21。 pstmt。setInt(2,losal); 22。
       pstmt。setInt(3,hisal); 23。 pstmt。executeUpdate(); 24。 pstmt。close(); 25。 } 26。 catch(SQLException e) { 27。 System。err。
      println("ERROR! Adding Salgrade: " 28。 + e。getMessage()); 29。 } 30。 } 31。} 使用loadjava命令将其装载到服务器端并编译: 1。D:eclipse3。1workspacedbtest>loadjava -u scott/tiger@iihero。
      oracledb -v -resolve Or 2。acleJavaProc。java 3。arguments: '-u' 'scott/tiger@iihero。oracledb '-v' '-resolve' 'OracleJavaProc。
      java' 4。creating : source OracleJavaProc 5。loading : source OracleJavaProc 6。resolving: source OracleJavaProc 查询一下状态: 1。
      连接到: 2。Oracle9i Enterprise Edition Release 9。2。0。1。0 - Production 3。With the Partitioning, OLAP and Oracle Data Mining options 4。
      JServer Release 9。2。0。1。0 - Production 5。 6。SQL> SELECT object_name, object_type, status FROM user_objects WHERE object_type LIKE 'JAVA%'; 7。
       8。OBJECT_NAME 9。-------------------------------------------------------------------------------- 10。 11。OBJECT_TYPE STATUS 12。
      ------------------------------------ -------------- 13。OracleJavaProc 14。JAVA CLASS VALID 15。 16。OracleJavaProc 17。JAVA SOURCE VALID 测试一下存储过程: 1。
      SQL> create or replace procedure add_salgrade(id number, losal number, hisal num 2。ber) as language java name 'OracleJavaProc。
      addSalGrade(int, int, int)'; 3。 2 / 4。 5。过程已创建。 6。 7。SQL> set serveroutput on size 2000 8。SQL> call dbms_java。set_output(2000); 9。
       10。调用完成。 11。 12。SQL> execute add_salgrade(6, 10000, 15000); 13。Creating new salgrade for EMPLOYEE… 14。 15。PL/SQL 过程已成功完成。
       16。 17。SQL> select * from salgrade where grade=6; 18。 19。 GRADE LOSAL HISAL 20。---------- ---------- ---------- 21。
       6 10000 15000。

    z***

    2017-07-26 08:17:20

类似问题

换一换
  • 系统软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):