代码之家  ›  专栏  ›  技术社区  ›  user16208

Java JDBC Oracle 9i升级到10g问题

  •  0
  • user16208  · 技术社区  · 15 年前

    我们刚刚从oracle9i升级到10g,我有一个数据库查询可以用于9i客户端,但不能用于10g。查询中没有任何更改。我得到以下错误:

    java.sql.SQLException: ORA-01036: illegal variable name/number
    

    不太清楚发生了什么。为什么它不再运行了。它只是一个select语句,连接了大约3到4个表。我要确保使用setInt传入变量(我使用的是一个数字)。在区分被联接的表时,我发现唯一不同的是,在一个表上,我联接的列在一个表上设置为数字,在另一个表上设置为数字(12)。这有区别吗?查询仍然在TOAD和SQL导航器中运行。。。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Paul Jowett    15 年前

    两个念头涌上心头:

    1. 确保您使用的是正确版本的jdbc驱动程序。既然你说过这个查询在TOAD等中有效,这很可能是你的问题。

    1. 尽可能多地了解统计信息
    2. 注意重新计算状态的内置作业。我们在上线12天后受到重创,因为统计数据的更改破坏了关键查询的性能。我们的测试不允许12天的稳定性测试。
        2
  •  0
  •   user16208    15 年前

    ps.setEscapeProcessing(false);
    

    去掉这个,现在可以了。不要认为它与oracle10g驱动程序兼容。谢谢大家的帮助。

    推荐文章