1

我们计划将我们的数据库迁移到 Oracle。我们需要手动检查每个嵌入式 SQL 在 Oracle 中是否正常工作,因为很少有人可能遵循不同的 SQL 规则。现在我的需求非常简单。

我需要浏览一个可能包含这样的查询的文件。

String sql = "select * from test where name="+test+"and age="+age;

有近 1000 个文件,每个文件都有不同类型的查询,我必须单独提取我通过 unix 脚本完成的查询。但是我需要将这些基于 Java 的查询转换为与 Oracle 兼容的查询。

IE。select * from test where name="name" and age="age"

基本上我需要通过这个检查查询的语法。我在 TOAD 中看到过类似的内容,但我有 1000 多个文件,无法手动更改每个文件。有没有办法?

如果问题不清楚,我会解释更多

4

2 回答 2

2

出于性能和安全原因,您应该使用 PreparedStatement.bind(...) 而不是字符串连接来构建 SQL 字符串。

除了修复需要修复的代码之外,我不知道有什么方法可以解决这个问题。如果你能找到常见的模式,那么你可以使用 find/replace 或 sed 或其他一些工具来自动化一些编辑,只要你在签入之前对结果进行比较。

如果有数千个文件,我猜有一个合理规模的团队以这种方式构建代码。在构建系统的人之间分担工作量似乎是公平的,而不是全部交给一个人。否则,您最终将成为“SQL 修复者”,团队中的其他任何人都不会有任何动力以更可移植的方式编写 SQL 代码。

于 2010-04-05T18:43:45.817 回答
0

您当前的应用程序是否通过公共类执行 SQL?你能添加一些日志来打印这个公共类中的原始 SQL 吗?从该输出中,您可以编写一个小脚本来针对 Oracle 运行每个语句。

于 2010-04-06T00:52:24.227 回答