采用java开发商业软件需要给Oracle付钱吗

采用java开发商业软件需要给Oracle付钱吗,第1张

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数据库时怎么设置主键自增等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9661676.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存