java - 货币计算,Java 和 Oracle/PL SQL 的比较

标签 java oracle plsql

伙计们,您能否就 Oracle/PL SQL 和 Java 在处理货币计算时的优缺点进行很好的比较。 如果您要开发一个处理大量金钱计算的应用程序,您会使用两者中的哪一个?为什么?

这个问题不是要引发 oracle/pl sql 和 java 爱好者之间的争论,我只是想知道什么是这种需求的最佳实践或标准方法,以及背后的原因。

场景是:

  1. 数据将来自数据库(Oracle 10g 最低)。
  2. 该程序将根据聚合数据 (100k-1M) 记录计算并生成发票
  3. 业务规则非常复杂
  4. 业务规则可能每月至少更改一次
  5. 计算中会用到几个引用表
  6. 程序将每天运行一次

提前致谢。

最佳答案

这些标准肯定有利于使用 PL/SQL。

1) Data would be from the database (Oracle 10g minimum).
2) The program would compute and generate invoices based on aggregated data (100k-1M) records
5) Several reference tables will be used in the computation
6) Program will be ran once a day

如果是在数据库中,涉及到数据,尤其是大量的数据,那么PL/SQL是默认选项。

其余的标准更难评估:

3) Business rules are very complex
4) Business rules may change at least once a month

PL/SQL 完全可以进行计算,而且它有很多内置的算术函数。因此,归结为“业务规则”和“复杂”的确切含义。我们可以在 PL/SQL 中编写复杂的业务逻辑(我已经做到了),但是 Java 的语言特性无疑使任务变得更容易:我正在考虑诸如反射和内省(introspection)之类的东西。

也许您正在考虑使用规则引擎?当然,金融服务行业一直是规则引擎的主要用户。从处理中抽象出规则集将更容易满足第四个标准。

Java 有两个已建立的规则引擎,Drools and JESS . PL/SQL 中 有一个规则引擎,已经有一段时间了,但它主要用作 Oracle Streams 的一部分。但是,API 是公开的,因此它可以用于其他目的。 Find out more .

如果您正在考虑规则引擎,那么我认为这会向 Java 倾斜。业务规则处理是一种专业的编程范例,与 PL/SQL 相比,在 Java 中有更多的经验和对它的支持。我怀疑这意味着在中间层使用 Java 而不是 Java 存储过程,这对网络流量和性能有影响。

关于java - 货币计算,Java 和 Oracle/PL SQL 的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7171556/

相关文章:

java - Oracle 数据库更改通知仅每 15 分钟发送一次

sql - 从联合查询的结果中选择 Oracle

oracle - 小于或等于 Oracle SQL

sql - Oracle PL/SQL : how the SYSDATE is different from 'DD-MMM-YY' ?

java - exe 文件(从 jar 创建)双击时无法运行(命令提示符程序)

java - 带字节数组的邮件附件

java - 如何让我安装的 Java 程序运行?

java - KIE 执行服务器 - 引导规则插入事实 - 如何在 Java 中获取它?

sql - 根据列过滤掉行中的重复项

oracle - 在 PL/SQL 中,游标和引用游标有什么区别?