用于ora的LPX-00607:包含在java中,但不包含sqlplus

用于ora的LPX-00607:包含在java中,但不包含sqlplus,java,sql,oracle,maven-2,xquery,Java,Sql,Oracle,Maven 2,Xquery,我正在尝试使用Oracle 11g进行一些SQL查询,但在使用ora:contains时遇到问题。我正在使用Spring的JDBC实现,我的代码生成sql语句: select * from view_name where column_a = ? and column_b = ? and existsNode(xmltype(clob_column), 'record/name [ora:contains(text(), "name

我正在尝试使用Oracle 11g进行一些SQL查询,但在使用
ora:contains
时遇到问题。我正在使用Spring的JDBC实现,我的代码生成sql语句:

select * 
  from view_name 
 where column_a = ? 
   and column_b = ? 
   and existsNode(xmltype(clob_column), 
                  'record/name [ora:contains(text(), "name1") > 0]', 
                  'xmlns:ora="http://xmlns.oralce.com/xdb"') = 1
显然,我已经删除了实际的视图/列名,但当我将其复制到sqlplus并替换为随机值时,select将正确执行。当我尝试在DAO代码中运行它时,我得到以下堆栈跟踪:

org.springframework.jdbc.UncatergorizedSQLException: PreparedStatementCallback;
uncatergorizedSQLException for SQL [the big select above]; SQL state [99999]; 
error code [31011]; 
ORA-31011: XML parsing failed.
ORA-19202: Error occured in XML processing
LPX-00607: Invalid reference: 'contains';nested exception is java.sql.SQLException: 
ORA-31011: XML parsing failed
ORA-19202: Error occured in XML processing
LPX-00607: Invalid reference: 'contains'
(像这样继续一段时间……)

我认为值得一提的是,我正在使用Maven,可能我缺少了一些实现这一点所需的依赖性。抱歉,帖子太长了,但我想在信息太多方面犯错

感谢您抽出时间阅读本文(至少=)


-Windle

您的命名空间声明中似乎存在拼写错误:

'xmlns:ora="http://xmlns.oralce.com/xdb"'
                            ^^

如果这真的是你的代码中的一个输入错误(而不仅仅是你在这里发布的内容),那么修复它也无妨。

谢谢你的编辑。这是我的第一个问题,我想我没有读到旁边的橙色方框(足够近=)我明天上班时会核实一下,但我想你可能已经发现了问题。代码是在一个独立的网络上,所以我不得不打印出来并重新键入,但我找到了我的打印版本,它有相同的打字错误。希望这是唯一的问题,就是这样。我想sqlplus已经知道ora名称空间,甚至没有查找它。谢谢APC