使用命令行实现java存储过程
首先使用非DBA账户登陆sqlplus,然后
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 /
Java 已创建。
SQL> show errors java source "javademo1"
没有错误。
SQL> create or replace procedure javademo1
2 as
3 language java name 'JavaDemo1.main(java.lang.String[])';
4 /
过程已创建。
SQL> set serveroutput on
SQL> call javademo1();
调用完成。
SQL> call dbms_java.set_output(5000);
调用完成。
SQL> call javademo1();
hello, java demo1
调用完成。
SQL> call javademo1();
hello, java demo1
调用完成。
使用Oracle Sql Devloper工具
权限问题解决
exec dbms_java.grant_permission(‘apps’,’java.util.propertypermission’,’‘,’‘);
exec dbms_java.grant_permission(‘apps’,’java.io.serializablepermission’,’‘,’‘);
exec dbms_java.grant_permission(‘apps’,’java.io.filepermission’,’‘,’‘);
exec dbms_java.grant_permission(‘apps’,’java.net.netpermission’,’‘,’‘);
exec dbms_java.grant_permission(‘apps’,’java.net.socketpermission’,’‘,’‘);
exec dbms_java.grant_permission(‘apps’,’java.lang.runtimepermission’,’‘,’‘);
exec dbms_java.grant_permission(‘apps’,’java.lang.reflect.reflectpermission’,’‘,’‘);
exec dbms_java.grant_permission(‘apps’,’java.security.securitypermission’,’‘,’‘);
exec dbms_java.grant_permission(‘apps’,’oracle.aurora.rdbms.security.policytablepermission’,’‘,’‘);
exec dbms_java.grant_permission(‘apps’,’oracle.aurora.security.jserverpermission’,’‘,’‘);