ora的LPX-00607:包含在java中但不包含sqlplus
问题描述:
我正在尝试使用Oracle 11g进行一些SQL查询,并且在使用ora:contains
时遇到问题。我使用Spring的JDBC实现和我的代码生成的SQL语句:ora的LPX-00607:包含在java中但不包含sqlplus
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和替代的随机值,选择正确执行。当我尝试在我的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"'
^^
如果这真的是一个在你的代码中输入错误(而不仅仅是在你的帖子中),修复它不会有什么坏处。
感谢您编辑小马。这是我的第一个问题,我想我没有阅读那边的橙色盒子。=) – Windle 2010-03-21 05:10:57