2010-06-24 88 views
0

我们刚刚从oracle 9i升级到10g,并且我已经与9i客户端一起使用了数据库查询,但不是10g。查询中没有任何变化。我收到以下错误:Java JDBC Oracle 9i升级到10g问题

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

不确定发生了什么事。为什么不能再运行了。这只是一个选择语句,它加入了大约3或4个表格。我确保我使用setInt传递变量(这是我使用的一个数字)。虽然区分正在加入的表格,但我发现唯一不同的是,在一张桌子上,我加入的一列设置为一个表格上的数字和另一个表格上的数字(12)。这是否有所作为?查询仍然运行在蟾蜍和SQL导航...

+1

NUMBER与NUMBER(12)不是问题; NUMBER(12)只是定义了小数点后的精度。无法记住NUMBER默认的精度是多少。 – 2010-06-24 19:46:28

+0

是的,我有点揣测,我只是把它扔到那里,因为这真的不是我的区域,没有人在这里有一个线索,甚至从哪里开始。谢谢。 – user16208 2010-06-24 19:49:15

+1

看到该功能可能会有所帮助。 – 2010-06-24 20:11:48

回答

0

的问题是对准备的语句下面的方法调用:

ps.setEscapeProcessing(false); 

删除了,现在它工作正常。不要认为这与Oracle 10g驱动程序兼容。感谢大家的帮助。

0

2想法涌现在脑海里:

  1. 确保您使用的JDBC驱动程序的正确版本。既然你说过查询在TOAD等工作,这很可能是你的问题。
  2. 确保您不使用任何ORACLE键词在您的查询的列别名等

此外,从经验,如果你的数据库是大/忙你已经有了一个公平的路要走你的10g环境是稳定的。我的建议:

  1. 学习尽可能多地了解统计
  2. 阅读生存手册(有在网络上的很多)
  3. 注意内置的工作是重新计算的状态。我们在上线12天后受到重击,因为状态变化破坏了关键查询性能。我们的测试不允许进行12天的稳定性测试。
  4. 知道绑定变量,偷看,如果你是不是已经