何时应将 java 存储过程与 Oracle 数据库一起使用...有什么缺点?[已关闭]

2022-09-04 05:47:05

PL/SQL 不是我的母语。Oracle支持用Java编写存储过程。与在 PL/SQL 中编写存储过程相比,这样做有什么优势


答案 1

在甲骨文世界中,发展的一般顺序应该是:

只要有可能,就纯粹用SQL来做。如果你需要的不仅仅是SQL,那就用PL/SQL来做吧。如果你需要一些PL/SQL做不到的东西,那就使用Java。如果所有其他方法都失败,请使用 C。如果你不能用C做,慢慢地远离问题....

PL/SQL 存储过程是将业务逻辑移动到任何集成技术都可以访问的层的绝佳方法。包中的业务逻辑(不要编写独立的函数和过程 - 它们会以难以管理的方式随着时间的推移而增长)可以由Java,C#,PL / SQL,ODBC等执行。

PL / SQL是在纯SQL之外抛出大量数据的最快方法。“批量绑定”功能意味着它可以很好地与 SQL 引擎配合使用。

Java 存储过程最适合创建与网络或操作系统交互的功能。例如,发送电子邮件,FTP数据,输出到文本文件并将其压缩,通常执行主机命令行。

在使用Oracle时,我从未编写过任何C代码,但据推测,它可用于与遗留应用程序集成。


答案 2

只有当你不能在PL / SQL中做到这一点时(或者PL / SQL被证明太慢了,我相信这将是非常罕见的)。

作为案例研究...我们在生产中运行了一个java存储过程( Oracle 9i ),它最初是用java编写的,因为当时我们认为java很酷,我早就改变了主意。无论如何。有一天,数据库崩溃,重新启动后,java SP不起作用。在 Oracle 支持下来回走动之后,他们并不真正知道问题是什么,他们唯一的建议涉及很多停机时间。这不是一个选择。30分钟后,我用PL / SQL重写了java SP。

它现在运行得更快,是预言机“本机”,与其他对象共享相同的部署过程,并且更易于调试。

PL / SQL是一种非常强大的语言。如果你正在编写存储过程,请花时间学习它,而不仅仅是用java做事,因为这是你所知道的。


推荐