2011-01-20 21:56:29 来源:中国it实验室
通常我们都使用Ps/SQL为Oracle编写存储过程,从Oracle 8开始我们可以有另一种选择:Java。8.0开始,Oracle自带一个JVM,内置对Java的支持,任何Java能做的事情你都可以放到 Oracle里面来做,你甚至可以在里面操作db2。这让Oracle具备了极其巨大的扩展能力,只要你愿意,完全可以开发一个trigger,让它在适 当的时候给管理员的msn发送一条即时消息。
好消息说完了,现在是坏消息:由于ps/SQL是过程化的语言,它基本上不具备多态的概念,供Oracle使用的Java方法必须申明为static,所以在Oracle中你无法使用Java的动态特性,比如接口、反射等。不过这并不妨碍你用Java做爱做的事。
我们以一个简单的hello world为例,我想任何一个有经验的Java程序员都能够通过这个例子,派生出其他希奇古怪的应用,有好的创意记得要与我共享。
首先是创建一个Java类,你可以用Jbuilder/Eclipse来编写,也可以直接在Oracle的控制台里面创建。前者不多说,看看后一种方式。
启动SQL plus,执行如下命令:
Java程序已创建。
然后在Oracle中把这个类导入成为一个函数,执行命令:
函数已创建
现在可以调用该函数,执行:
返回结果:你好,bromon
有一个需要注意的问题是,假如我们的Java方法是没有参数的,比如:
那么在创建函数的时候,函数名不应该有扩号:hello_sp,否则会报告函数有编译错误。
如果你的Java类是在IDE里面编写的,那么只需要在Oracle中加载编译过的class文件即可,方法是:
启动enterprise manage console,在“方案”下找到“源类型”,右击”Java类”,选择”加载Java“,选择对应的class文件即可。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。