Java 查询在SQL*Plus中工作,但在JDBC中失败,出现ORA-00911异常
我试图通过以下查询跟踪数据库会话期间生成的重做量:Java 查询在SQL*Plus中工作,但在JDBC中失败,出现ORA-00911异常,java,oracle,Java,Oracle,我试图通过以下查询跟踪数据库会话期间生成的重做量: SELECT a.name, b.VALUE FROM v$statname a, v$mystat b WHERE a.statistic# = b.statistic# AND a.name = 'redo size'; 这个查询直接在SQL*Plus和Toad中工作,但是我使用JDBC得到了一个ORA-00911异常,我已经将其缩小到“statistic#”列名称 我该如何解决这个问题呢?用双引号把它括起来-这应该可以让你在Or
SELECT a.name, b.VALUE
FROM v$statname a, v$mystat b
WHERE a.statistic# = b.statistic# AND a.name = 'redo size';
这个查询直接在SQL*Plus和Toad中工作,但是我使用JDBC得到了一个ORA-00911异常,我已经将其缩小到“statistic#”列名称
我该如何解决这个问题呢?用双引号把它括起来-这应该可以让你在Oracle中调用任何字段用双引号把它括起来-这应该可以让你在Oracle中调用任何字段列名
统计#
都不是问题
我打赌你也会发送终止的代码>来自Java程序内部
但您可能不包括代码>通过JDBC执行SQL语句时(至少不在Oracle和其他一些DBMS中)
删除从您的SQL字符串中选择code>,应该可以。列名称statistic#
不是问题
我打赌你也会发送终止的代码>来自Java程序内部
但您可能不包括代码>通过JDBC执行SQL语句时(至少不在Oracle和其他一些DBMS中)
删除从您的SQL字符串中选择code>,应该可以。打开JDBC日志记录,查看驱动程序文档以了解如何执行此操作。在JDBC日志中,您可以看到在DB中准备和执行的实际语句。这消除了导致错误的一个可能原因。打开JDBC日志记录,查看驱动程序文档以了解如何执行此操作。在JDBC日志中,您可以看到在DB中准备和执行的实际语句。这消除了错误的一个可能原因。我的新手错误。你说得对,分号在里面。移除它修复了问题。谢谢,我犯了新手错误。你说得对,分号在里面。移除它修复了问题。谢谢。未加引号的Oracle对象(表、列等)的有效字符为a-z
、0-9
、#
、
和$
,并且必须以a-z
开头。尽管不鼓励您使用#
和$
而且我也强烈建议您不要使用带引号的名称。很有可能
并不像一匹没有名字的马所说的那样是个问题。一个没有引号的Oracle对象(表、列等)的有效字符是a-z
,0-9
,
,
和$/code>,并且必须以a-z
开头。尽管不鼓励您使用#
和$
而且我也强烈建议您不要使用带引号的名称。正如一匹没有名字的马所说,
可能不是问题所在。