1

我们在生产中使用 Oracle,但在我们公司,很难在开发环境中安装。

有没有办法让 Perl(或任何其他语言)通过 DBI 模块(或任何其他语言向数据库发送 SQL 命令的等效模块)发送原始 SQL 语句,这些语句从 Oracle SQL 转换为 MySQL 或 SQLite 或其他东西别的?

所以应用程序会认为它正在与 Oracle 通信,但实际上是在与一个不同的、更易于安装的开源/免费数据库通信。

4

2 回答 2

3

是不可能的。其他数据库引擎无法处理 Oracle 查询。Oracle 中最简单的查询,例如,如果要获取当前用户的名称:

select user from dual

此查询使用DUAL表,该表在任何其他 DBMS 中都不存在。还有很多 Oracle 特定的结构(CONNECT BYMINUS等)无法在其他引擎中处理。
在您的情况下,最好的方法是在虚拟机中创建一个 Oracle 安装,然后将其映像复制到另一台虚拟机以进行工作。

于 2016-01-08T17:07:55.017 回答
1

ANSI SQL 是您所指的抽象层。

假设目标数据库中存在所有表并且 RDBMS 支持 ANSI SQL,那么您的查询将完美地传输到其他数据库。

如果您希望使用标准中未定义的东西,那么它不太可能正常工作。

这是标准上Oracle 11.2G 位置的链接。

在谈论 Oracle 时,他们的解决方案是提供Oracle 数据库网关

于 2016-01-20T05:44:37.270 回答