gpt4 book ai didi

java - 迁移到甲骨文

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:03 26 4
gpt4 key购买 nike

我们正在使用 Java EE 应用程序,我们现在正在使用 Informix DB。我们的代码通过查询访问 DB,例如“从测试中选择前 10 个 *” 据我所知,Oracle 不支持“前 10 *”类语句。我们有超过 1000 个这样的查询。我们应该手动更改它还是可以进行一些手动自定义?

最佳答案

这是尽可能只使用标准 SQL 或将这些依赖项隔离到存储过程中的一个很好的理由(是的,我知道在这种特定情况下这对你没有帮助,我只是想我会提到供将来引用)。

我怀疑您必须单独更改每一个,尽管在您的源代码中简单搜索“select”或“first”将是一个好的开始。

然后您可以决定如何更改它们,因为您可能还希望它在 Informix 上运行。

就其值(value)而言,我认为您可以使用 Oracle 获得相同的效果

select * from ( select * from mytable ) where rownum <= 10

我会将动态构建查询(基于模板)的工作转移到另一层,该层可以根据您配置的数据库返回不同的查询。然后,如果您还想支持 DB2(例如),只需更改该层即可。

例如,有这样的电话:

gimmeRowLimitedSqlQuery ("* from test",10);

这会给你:

select first 10 * from test
select * from test where rownum <= 10

我还应该提一下,虽然我知道你的查询只是一个例子,如果你不指定 order by,SQL 可以按任何顺序返回行,所以

select first 10 * from test

意义不大,尤其是如果您可能在不同的 DBMS 中运行它。

关于java - 迁移到甲骨文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2430745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com