我们在生产中使用 Oracle,但在我们公司,很难在开发环境中安装。
有没有办法让 Perl(或任何其他语言)通过 DBI 模块(或任何其他语言向数据库发送 SQL 命令的等效模块)发送原始 SQL 语句,这些语句从 Oracle SQL 转换为 MySQL 或 SQLite 或其他东西别的?
所以应用程序会认为它正在与 Oracle 通信,但实际上是在与一个不同的、更易于安装的开源/免费数据库通信。
我们在生产中使用 Oracle,但在我们公司,很难在开发环境中安装。
有没有办法让 Perl(或任何其他语言)通过 DBI 模块(或任何其他语言向数据库发送 SQL 命令的等效模块)发送原始 SQL 语句,这些语句从 Oracle SQL 转换为 MySQL 或 SQLite 或其他东西别的?
所以应用程序会认为它正在与 Oracle 通信,但实际上是在与一个不同的、更易于安装的开源/免费数据库通信。
是不可能的。其他数据库引擎无法处理 Oracle 查询。Oracle 中最简单的查询,例如,如果要获取当前用户的名称:
select user from dual
此查询使用DUAL
表,该表在任何其他 DBMS 中都不存在。还有很多 Oracle 特定的结构(CONNECT BY
、MINUS
等)无法在其他引擎中处理。
在您的情况下,最好的方法是在虚拟机中创建一个 Oracle 安装,然后将其映像复制到另一台虚拟机以进行工作。
ANSI SQL 是您所指的抽象层。
假设目标数据库中存在所有表并且 RDBMS 支持 ANSI SQL,那么您的查询将完美地传输到其他数据库。
如果您希望使用标准中未定义的东西,那么它不太可能正常工作。
这是标准上Oracle 11.2G 位置的链接。
在谈论 Oracle 时,他们的解决方案是提供Oracle 数据库网关。