首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >支持MySQL和Oracle的最佳做法

支持MySQL和Oracle的最佳做法
EN

Stack Overflow用户
提问于 2014-07-03 23:06:16
回答 2查看 113关注 0票数 2

我有一个必须同时支持MySQL和Oracle DBMS的Java应用程序。

它最初是为MySQL编写的,由于各种原因,我不使用Hibernate之类的框架,所以查询是用存储在配置文件中的“纯”SQL编写的。

到目前为止,我看到有一些工具可以自动从MySQL转换到Oracle,反之亦然,比如Razor-SQL。

使用该工具对我很有帮助,但现在我必须维护两个不同的查询文件,表DDL等。这是一场噩梦!

为了避免过多地更改现有查询,我编写了一些PL/SQL函数来模拟我最常用的MySQL函数,如UNIX_TIMESTAMP、FROM_UNIXTIME等。

我想问的是,是否有人有一些建议或有更好的方法来处理这些问题。

是否有一些可遵循的最佳实践?

提前谢谢你

EN

回答 2

Stack Overflow用户

发布于 2014-07-03 23:14:03

我在过去使用过模板。假设只有一条SQL语句,但是其中有一个if/else模板来支持不同的DB。

例如

代码语言:javascript
复制
select a,b,c
from T
where
   id = ?
#if ORACLE
   and oracleFunc(d,c)
#else
   and MYSQLFunc(d,c)
#end
order by b
票数 2
EN

Stack Overflow用户

发布于 2014-07-05 21:41:15

我不熟悉oracle和mySQL之间的区别,但我已经用oracle和derby有效地做了同样的事情。

对于许多不同之处(如从序列中获取值,窗口查询等),我在java中定义了一个描述功能的api,并根据特定的连接类型提供了不同的实现,以完成工作(如获取序列值)或正确组装sql片段(如窗口查询)。这已经涵盖了大部分差异。

在其他情况下,如果两者都不支持相同的概念(比如tuple in clauses),我最终只能管理不同的sql。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24557298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档