Java oracle是否有可能通过任何方式获得警告消息

Java oracle是否有可能通过任何方式获得警告消息,java,oracle,Java,Oracle,我正在开发oracle数据库工具,希望在执行函数时显示警告消息,例如: 创建或替换函数FN\u OEDS\u CONVERTDATE2( V_日期)返回VARCHAR2 是 开始 声明 V_RETVALUE VARCHAR2(15):=''; 开始 挑选 案例V_日期 当为空时,则为“” ELSE TO_CHAR(V_日期'DD-MM-YYYY') 从DUAL结束到V_RETVALUE 返回V_RETVALUE; 结束; 结束; / 上述函数将成功执行,但即使其状态无效,也不会抛出任何错误消息

我正在开发oracle数据库工具,希望在执行函数时显示警告消息,例如:

创建或替换函数FN\u OEDS\u CONVERTDATE2(
V_日期)返回VARCHAR2
是
开始
声明
V_RETVALUE VARCHAR2(15):='';
开始
挑选
案例V_日期
当为空时,则为“”
ELSE TO_CHAR(V_日期'DD-MM-YYYY')
从DUAL结束到V_RETVALUE
返回V_RETVALUE;
结束;
结束;
/
上述函数将成功执行,但即使其状态无效,也不会抛出任何错误消息


如何在Java中抛出警告消息?

为什么不在运行对象之前检查对象是否无效?像这样的东西会有帮助

select *
from 
   dba_objects 
where 
   status != 'VALID'
order by
   owner,
   object_type
;

编译器消息不会通过语句或连接上的getWarnings()返回到客户端

相反,一旦您通过
语句.getWarnings()
识别了警告,您就需要从视图
ALL\u errors

比如:

SELECT line, 
       position, 
       text, 
       name, 
       type 
FROM all_errors 
WHERE owner = user
AND type = 'FUNCTION'
AND name = 'FN_OEDS_CONVERTDATE2'
ORDER BY line, position    

您指的是什么类型的错误?功能状态无效意味着一定有问题。您的代码必须使用信息填充
SQLException
。在java中,我可以通过st.getWarnings()获得警告,但在general java中显示。sql.SQLWarnings:Warnings:执行完成,但有警告,我可以查询并获得准确的oracle。老实说。如果您只是在
dual
之后添加分号,那么这将很好地编译。为什么不确保所有内容都正确编码并测试是否正确?是的,我正在使用SQLExceptionIt。@Ben:当然,但这只是一个例子。如果查看where条件,您将清楚地看到它不会在obj名称上过滤。