将存储过程 PL/SQL 转换为 Java

Posted

技术标签:

【中文标题】将存储过程 PL/SQL 转换为 Java【英文标题】:Converting stored procedures PL/SQL to Java 【发布时间】:2015-10-14 10:00:29 【问题描述】:

是否有人知道将 PL/SQL 转换为 Java 的开源工具。或者,如果您对准备制作此工具有任何建议。

【问题讨论】:

为什么需要会议?你需要将PLSQL包装成java吗?您是否打算不使用 Oracle 并迁移代码?或者您想更好地扩展您的应用程序?或者也许将逻辑移到数据库之外?你的代码大小是多少? Oracle 在数据库中有 Java,或 SQLJ(类似于 ProC),但我想这不是您要寻找的。​​span> 我们需要让我们的应用程序数据库独立,有几千行代码,我们的基本目标是将存储过程转换为java。 类似问题:***.com/questions/8838488/… 【参考方案1】:

很可能没有开箱即用的工具。我建议使用 ANTLR 构建一个 PL/SQL 解析器,然后你可以在它上面实现你的翻译器。

【讨论】:

AFAIK,ANTLR 只会提供 AST,我想这只是一步,并且有许多 PL/SQL 解析器可用。当你说我需要在它上面实现一个翻译器时,你是什么意思?该怎么办? 是的,这就是我的意思。这将花费大量时间(开发解析器和开发翻译器),因此使用下面建议的商业解决方案可能更便宜。【参考方案2】:

有一些商业工具,例如: http://www.ispirer.com/application-conversion/oracle-plsql-to-java-migration 没有免费的 afaik。

您可能会得到 PLSQL 中最复杂的部分并尝试手动转换它。 您将看到自动翻译是否有意义,您将能够评估工具。

我看到的所有翻译代码都非常丑陋且难以维护(尽管可能)。

也许更好的选择是使用 PLSQL 创建回归测试,手动编写 Java 代码并针对您的回归测试进行测试。

PLSQL 仍然存在是有充分理由的。

【讨论】:

【参考方案3】:

P2JTrans 是一个 PL/SQL 到 Java 的转换器,使用 ANTLR v3.3 和 StringTemplate 将 PL/SQL 代码转换为 java

https://github.com/developeron29/P2JTrans

【讨论】:

【参考方案4】:

查看商业广告:http://www.io64.com/plsql-to-java-migration/

在demo中,生成的代码也会被执行。

【讨论】:

以上是关于将存储过程 PL/SQL 转换为 Java的主要内容,如果未能解决你的问题,请参考以下文章

使用带有布尔输入参数的 PL/SQL 在 oracle 中调用 java 存储过程

Java 存储过程是不是比 Oracle 中的 PL/SQL 慢?

Clob 作为 PL/SQL Java 存储过程的参数

用 Pl/SQL 与 Java 编写的存储过程的性能比较

PL/SQL:将词法参数传递给存储过程

oracle SQL语句中怎么样调用存储过程