我们计划将数据库迁移到Oracle。我们需要手动检查每个嵌入式SQL在Oracle中是否正常工作,因为很少有人遵循不同的SQL规则。现在我的需求非常简单。
我需要浏览一个可能包含此类查询的文件。
String sql =“select * from test where name =”+ test +“and age =”+ age;
有近1000个文件,每个文件都有不同类型的查询,我必须通过unix脚本单独查询查询。但是我需要将这些基于Java的查询转换为Oracle兼容查询。 / p>
即。 select * from test where name =“name”和age =“age”
基本上我需要通过这个来检查查询的语法。我在TOAD中看到过这样的东西,但我有超过1000个文件,无法手动更改每个文件。有办法吗?
我会解释更多我的问题不明确
答案 0 :(得分:2)
出于性能和安全性原因,您应该使用PreparedStatement.bind(...)而不是字符串连接来构建SQL字符串。
除了修复需要修复的代码之外,我不知道如何解决这个问题。如果你可以找到常见的模式,那么你可以使用find / replace或sed或其他工具自动进行一些编辑,只要你在检查之前对结果进行差异化。
如果有数千个文件,我猜有一个合理规模的团队以这种方式构建代码。在构建系统的人员之间分担工作量似乎是公平的,而不是将其全部转移给一个人。否则你将最终成为“SQL修复人员”,团队中的其他任何人都没有动力以更便携的方式编写SQL代码。
答案 1 :(得分:0)
您当前的应用程序是否通过公共类执行SQL?你能添加一些日志来打印这个普通类中的原始SQL吗?从该输出中,您可以编写一个小脚本来针对Oracle运行每个语句。