在Oracle中使用Java的存储过程方法有哪些呢?
在Oracle中使用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。 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。
答:准备托福考试听力的方法和过程: 第一步:盲听。托福听力不看材料听,了解大概讲的内容就行。同时还把听力的Gist题给练了。 第二步:再听。这一遍要照着材料听。...详情>>
答:节约用户资金(1)Hansky配置管理系统的总体实施成本低对硬件系统性能的要求低,可以跨平台使用,节约了用户的投资;安装简单,易于维护,无需专职的系统管理员;功...详情>>
答:这特性使它成为理想的软盘和存储卡文件系统,也适合用作不同操作系统中的数据交流详情>>