`
v5browser
  • 浏览: 1139111 次
社区版块
存档分类
最新评论

在Oracle中使用Java存储过程JSP(Java Stored Procedures)一些技术要点

 
阅读更多

1. 如果在Java method里面需要访问Oracle数据库,不用加载jdbc driver,因为其已经包含在了Oracle数据库中;

2. 如果在Java class里面调用了第三方的类库,如JavaMail等,则需要将相应的JAR加载Oracle数据库中,加载方法如下:

loadjava -user sys/password -resolve -synonym mail.jar
From SQLPLUS:
sqlplus /nolog
connect sys/manager as sysdba;
SQL> call sys.dbms_java.loadjava('-v -r -grant PUBLIC -synonym javamail-1.2\mail.jar');

3. 编译Java class的JRE版本必须和Oracle JVM的版本一致,最新的Oracle 11gR2的JVM是1.5,所以,我们在创建java projects时应该选择JRE版本是1.5

查看oracle的jvm版本:

CREATE OR REPLACE FUNCTION get_java_property (prop IN VARCHAR2)

RETURN VARCHAR2 IS LANGUAGE JAVA

name 'java.lang.System.getProperty(java.lang.String) return java.lang.String';


SQL> SELECT get_java_property('java.version') FROM dual;

GET_JAVA_PROPERTY('JAVA.VERSION')

--------------------------------------------------------------------------------

1.5.0_10

4. 可以通过一个对USER_OBJECTS的查询来验证编译和加载的状态,如果正确,那么状态将是’VALID’的:

SELECT object_name, object_type, status
FROM user_objects WHERE object_type LIKE 'JAVA%';

5. 有些Java method需要一些Java权限,则需要运行类似于下面的语句:

sqlplus /nolog
connect sys/manager as sysdba;
execute dbms_java.grant_permission('SCOTT','SYS:java.net.SocketPermission','*' ,'connect,resolve');
COMMIT;

6. 如果是创建的PL/SQL Function,则可以使用输出函数查看,例如:

execute Dbms_Output.Put_Line(getEName(7839));




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics