Oracle规定:在"General Purpose Desktop Computers and Servers"上开发和部署Java程序都在该许可证的允许范围内,不需要给Oracle付费。学习java推荐千锋教育,该教育机构采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。
学Java可以从事的工作如下:
1、企业级应用开发大可以做全国联网的系统,小到中小企业的应用解决方案。多数没有前端开发的通常是从一个服务器接收数据,处理后发给另一个处理系统。
2、如今,Java编程已经在金融服务业得到广泛应用,所有银行平台的前台和后台电子交易系统、确认和结算服务、数据处理及其他项目都用Java来编写。
3、服务端程序开发,Java都占有极为重要的地位。
想要了解更多有关java的相关信息,推荐咨询千锋教育。千锋企合作部整合大量企业客户资源,紧抓当下企业需求,将技术和项目完美结合千锋课程体系,力求培养更多优质人才服务企业,不断提升学员竞争力,链接企业用人标准的培训课程及实战项目,让企业招聘用人的技术要求与千锋学员的技术充分对接。近年来不断引进阿里钉钉小程序技术、红帽认证、腾讯云、亚马逊等,通过与企业的深度融合实现千锋教研和就业服务的迭代升级,专业性值得信赖。
写一个after update的trigger,再写一个存储过程,trigger调用存储过程,存储过程调用java程序。
----------------------------建立一个java存储过程
1 先看一下这个目录
[oracle@ocean ~]$ pwd
/home/oracle
[oracle@ocean ~]$ ls -l
total 8
-rw-r--r-- 1 oracle orains 604 Dec 26 2006 bash
2 连接到test用户
SQL> conn test/test
Connected
3 授于test用户文件读写和执行命令的权限
SQL>exec dbms_javagrant_permission('TEST','SYS:javaioFilePermission','<<ALL FILES>>','read,write,execute,delete');
PL/SQL procedure successfully completed
SQL>exec dbms_javagrant_permission('TEST','javalangRuntimePermission','','writeFileDescriptor' );
PL/SQL procedure successfully completed
4 建立java存储过程,注意,这里的exp 路径和dmp文件的路径是数据库服务器的路径
create or replace and compile java source named "aa"
as
import javaio;
import javalang;
import javautil;
import javasql;
import oraclesql;
public class aa
{
public static void invoke_exe() throws IOException
{
Process p=RuntimegetRuntime()exec("/oracle/product/924/bin/exp userid=test/test file=/home/oracle/testdmp");
try
{
pwaitFor();
}catch(InterruptedException ie){Systemoutprintln(ie);}
}
}
/
Java created
Elapsed: 00:00:0001
5 建立调用java存储过程的存储过程call_aa
create or replace procedure call_aa
as language java
name 'aainvoke_exe()';
/
6 执行java存储过程
exec call_aa;
7 检查一下dmp文件是否已经生成
[oracle@ocean ~]$ pwd
/home/oracle
[oracle@ocean ~]$ ls -l
total 28
-rw-r--r-- 1 oracle orains 604 Dec 26 2006 bash
-rw-r--r-- 1 oracle orains 16384 Jul 3 14:12 testdmp
-----------------
exec dbms_JavaGrant_Permission('TEST', 'javaioFilePermission', '<<ALL FILE>>', 'read ,write, execute, delete');
exec dbms_JavaGrant_Permission('TEST', 'javaioFilePermission', 'd:aabat', 'read ,write, execute, delete');
exec dbms_javagrant_permission('TEST','javalangRuntimePermission','','writeFileDescriptor' );
在oracle中主键是不能自增的,不过可以创建一个序列
-- Create sequence
create sequence SEQ_TEXT
minvalue 1
maxvalue 9999
start with 60
increment by 1
cache 20;
在插入数据的时候
INSERT INTO STUDENT(ID,NAME) VALUES(SEQ_TEXTNEXTVAL,'张三');
这样就可以了
把JAVA程序LOAD进oracle
在$ORACLE_HOME/bin目录下有个LOADJAVA命令,使用这个命令将刚写好的JAVA程序LOAD进数据库。
loadjava -user test/test@test -o -v -f -r Mainjava
如果成功的话,会打印出来信息提示成功,若程序有编译错误的话,也会提示你错误的地方。
3。修改权限
因为我的这个JAVA程序里涉及到对文件的读写 *** 作,所以要先修改权限。
首先以管理员身份登录进数据库
sqlplus / as sysdba
然后执行
begin
dbms_javagrant_permission('TEST','SYS:javaioFilePermission','/var/spool/cron/oracle','read,write,execute,delete');
end;
/
执行完毕后,在数据库里执行上述JAVA程序时,就拥有读写该文件的权限了。
4。创建存储过程
进入到数据库,我是在SQLPLUS命令行
create or replace procedure Modify(name varchar2) as language java name 'Mainmodify(javalangString)';
/
会提示创建存储过程成功。
5。增加trigger
我是在TOAD里直接针对某个表增加trigger,所以我只写出关键部分的代码
begin
if :oldname = 'time' then
Modify(:newvalue);
end if;
end;
至此,在ORACLE的trigger里调用JAVA程序就完成了,后来的实验证明,每当更新这个表时,都确实执行了该JAVA程序,完成了对文件的读写。
以上就是关于采用java开发商业软件需要给Oracle付钱吗全部的内容,包括:采用java开发商业软件需要给Oracle付钱吗、如何在oracle数据更新时自动执行java代码,谢绝使用监听器,抓包等功能,因为产生的数量实在太大。、Java程序连接Oracle数据库时怎么设置主键自增等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)