如何在Oracle中使用Java存储过程(详解)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何在Oracle中使用Java存储过程
(详解)
一、如何缔造java存储过程?
通常有三种步骤来缔造java存储过程。
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. 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. /
12.
13.Java 已
14.
15.缔造。
16.
17.SQL> show errors java source "javademo1"
18.没有
19.
20.舛误。
21.
22.SQL> create or replace procedure javademo1
23. 2 as
24.3 language java name JavaDemo1.main(ng.String[]);
25. 4 /
26.
27.过程已
28.
30.
31.SQL> set serveroutput on
32.SQL> call javademo1();
33.
34.调用
35.实现。
36.
37.SQL> call dbms_java.set_output(5000);
38.
39.调用
40.实现。
41.
42.SQL> call javademo1();
43.hello, java demo1
44.
45.调用
46.实现。
47.
48.SQL> call javademo1();
49.hello, java demo1
50.调用
51.实现。
2. 使用外部class文件来装载缔造
e.g. 这里既然用到了外部文件,必定要将class文件放到oracle Server 的某一目录下边。
1.public class OracleJavaProc
2.{
3. public static void main(String[] argv)
4. {
5. System.out.println("Its a Java Oracle procedure.");
6. }
7.}
8.
9.
10.SQL> grant create any directory to scott;
11.
12.授权
13.顺利。
14.
15.SQL> conn scott/tiger@iihero.oracledb
17.SQL> create or replace directory test_dir as d:/oracle
;
18.
19.目录已
20.
21.缔造。
22.
23.SQL> create or replace java class using bfile(test_dir, OracleJ
avaProc.CLASS)
24. 2 /
25.
26.Java 已
27.
28.缔造。
29.
30.SQL> create or replace procedure testjavaproc as language java
name OracleJavaProc.main(ng.String[]);
31. 2 /
32.
33.过程已
34.
35.缔造。
36.
37.SQL> call testjavaproc();
38.
39.调用
40.实现。
41.
42.SQL> execute testjavaproc;
43.
44.PL/SQL 过程已
45.顺利
46.实现。
47.
48.SQL> set serveroutput on size 5000
49.SQL> call dbms_java.set_output(5000);
50.
51.调用
52.实现。
53.
54.SQL> execute testjavaproc;
55.Its 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 his
al) {
8.
9. System.out.println("Creating new salgrade for EMPLOYEE...
");
10.
11. try {
12. Connection conn =
13. DriverManager.getConnection("jdbc:default:connectio
n:");
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.orac
ledb -v -resolve Or
2.acleJavaProc.java