PL/SQL不是我的母语.Oracle支持用Java编写存储过程.与在PL/SQL中编写存储过程相比,这样做有什么好处
在Oracle世界中,开发的一般顺序应该是:
尽可能纯粹使用SQL.如果您需要的不仅仅是SQL,请使用PL/SQL.如果您需要PL/SQL无法做到的事情,那么使用Java.如果所有其他方法都失败了,请使用C.如果你不能用C做,那就慢慢退回问题....
PL/SQL存储过程是将业务逻辑移动到任何集成技术都可访问的层的绝佳方式.包中的业务逻辑(不要单独编写函数和过程 - 它们将以无法管理的方式随着时间的推移而增长)可以由Java,C#,PL/SQL,ODBC等执行.
PL/SQL是在纯SQL之外抛出大量数据的最快方法."批量绑定"功能意味着它可以很好地与SQL引擎配合使用.
Java存储过程最适合创建与网络或操作系统交互的功能.例如,发送电子邮件,FTP数据,输出到文本文件并将其压缩,一般执行主机命令行.
在使用Oracle时,我从来没有编写任何C代码,但可能它可以用于与遗留应用程序集成.
只有当你不能在PL/SQL中做到这一点时(或PL/SQL证明太慢,我相信这是非常罕见的).
作为一个案例研究......我们有一个在生产中运行的Java存储过程(Oracle 9i),它最初是用java编写的,因为当时我们认为java很酷,我早就改变了主意.无论如何.有一天,数据库崩溃,重新启动后,java SP无效.经过oracle支持后,他们并不真正知道问题是什么,他们唯一的建议涉及很多停机时间.不是一种选择的东西.30分钟后,我在PL/SQL中重写了java SP.
它现在运行得更快,是oracle"native",与其他对象共享相同的部署过程,并且更容易调试.
PL/SQL是一种非常强大的语言.如果您正在编写存储过程,请花时间学习它而不仅仅是在java中做事,因为这就是您所知道的.