首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PreparedStatement和Oracle10g缺陷

PreparedStatement和Oracle10g缺陷
EN

Stack Overflow用户
提问于 2011-12-09 11:19:22
回答 1查看 726关注 0票数 4

当我们在Java应用程序中调用一些SQL时,Oracle 10g中的一个bug出现了一个很大但时断时续的问题。我们不能迅速修补或升级到11g -这似乎是第一个‘愚蠢的’甲骨文支持反应。这里有一些工作要做,但我在PreparedStatements代码中很难做到这一点。

实际错误是:

代码语言:javascript
复制
ORA-00600: internal error code, arguments: [kcblasm_1]

错误是: Oracle 12419392

周围的工作正在进行中

代码语言:javascript
复制
alter session set "_hash_join_enabled" = FALSE;

在我们运行导致错误的SQL之前。但是,传统上,PreparedStatement只接受一段SQL:

代码语言:javascript
复制
PreparedStatement stmt = con.prepareSelect("sql statement2");

是否可能有一个类似于这样的PreparedStatement调用:

代码语言:javascript
复制
PreparedStatement stmt = con.prepareSelect("sql statement1; sql statement2;");

或者,仅仅通过一个接一个地运行一系列的顺序PreparedStatements就可以做到这一点吗?

这并不是圣诞节即将来临、支持减少等的最佳时机,所以我真的希望有人能帮上忙。谢谢。

编辑:@jonearles询问代码,所以如果它有任何用途,就在这里。可能对我们的项目非常具体,但可能有人会注意到引起bug的突出问题:

代码语言:javascript
复制
SELECT DISTINCT qm.validator_id,
  qm.QM_ID,
  u.EMAIL,
  qm.creation_dt,
  qm.emailed,
  qm.valid,
  qm.resolved,
  qm.new_obs_id,
  o.*,
  nests.*,
  s.*,
  l.*,
  latc.TENKM
FROM query_man qm,
  obs o,
  obs_aux_aon nests,
  sub s,
  location l,
  l_atlas_tetrad_coverage latc,
  users u
WHERE qm.OBS_ID         = o.OBS_ID
AND o.SUB_ID            = s.SUB_ID
AND u.user_id           = qm.user_id
AND o.obs_id            = nests.obs_id(+)
AND s.LOC_ID            = l.LOC_ID
AND latc.ATLAS_REGION   = 'NKNE'
AND (LENGTH (l.gridref) = 6
AND (SUBSTR(l.gridref,1,3)
  || SUBSTR(l.gridref,5,1)) = latc.TENKM
OR LENGTH (l.gridref)       = 4
AND l.gridref               = latc.TENKM)
AND qm.RESOLVED            IS NULL
ORDER BY latc.tenkm,
  l.tetrad
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-10 09:32:04

好的。我主要问题的答案是“否”,您不能像这样创建一个PreparedStatement:

代码语言:javascript
复制
PreparedStatement stmt = con.prepareSelect("sql statement1; sql statement2;");

运行单独的语句来临时更改会话一段SQL确实有效,但一致意见似乎很糟糕,而且响应速度慢得令人无法接受。选项似乎是补丁或升级,或者查看no_use_hash提示(我认为这也会很慢)。会看代码。

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

https://stackoverflow.com/questions/8444702

复制
相关文章

相似问题

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