【发布时间】:2011-01-31 09:23:51
【问题描述】:
出于安全和性能原因,我正在修改一些代码以使用preparedStatement而不是普通Statement。
我们的应用程序目前正在将信息存储到一个嵌入式 derby 数据库中,但我们很快就会迁移到 Oracle。
我发现了两件关于 Oracle 和 Prepared Statement 的事情需要你们帮助:
1- 我发现 this document 说 Oracle 不会将绑定参数处理到 IN 子句中,因此我们无法提供如下查询:
Select pokemon from pokemonTable where capacity in (?,?,?,?)
这是真的吗?有什么解决方法吗? ... 为什么 ?
2- 我们有一些 TIMESTAMP 类型的字段。因此,使用我们的实际语句,查询看起来像这样:
Select raichu from pokemonTable where evolution = TO_TIMESTAMP('2500-12-31 00:00:00.000', 'YYYY-MM-DD HH24:MI:SS.FF')
准备好的 Statement 应该做什么?我应该放入参数数组: 2500-12-31 或 TO_TIMESTAMP('2500-12-31 00:00:00.000', 'YYYY-MM-DD HH24:MI:SS.FF') ?
感谢您的帮助,希望我的问题很清楚!
问候,
【问题讨论】:
标签: java oracle prepared-statement