我正在使用 Oracle 的 XMLType 函数从返回游标的存储过程中获取 XML 数据。我的 SQL 看起来像这样:
select
XMLType(
package_name.storedProcName('PARAM1', 'PARAM2', 'PARAM3')
) as sresult
from dual;
在存储过程返回记录的情况下,这可以正常工作,并且我得到了我期望的 XML 结果。但是,当该过程不返回任何记录时,我收到以下错误:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.XMLTYPE", line 334
ORA-06512: at line 1
在这种情况下,我最好返回 null、空白字符串或其他值。当然,我想避免每次发生这种情况时都引发 Oracle 异常。我能做些什么来实现这一目标?
澄清:我的问题是当存储过程返回一个空游标时,XMLType 构造函数会引发异常。如何在我的 SQL 查询中检测到空游标?(不幸的是,我没有在 Oracle 端编程的奢侈——我正在编写一个 Java 客户端。)