是否可以通过oracle获取警告消息

时间:2012-05-03 11:52:18

标签: java oracle

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

CREATE OR REPLACE FUNCTION FN_OEDS_CONVERTDATE2(
V_DATE DATE) RETURN VARCHAR2
    IS
BEGIN
DECLARE
    V_RETVALUE VARCHAR2(15) :='';
    BEGIN


    SELECT
        CASE V_DATE
            WHEN NULL THEN ''
            ELSE TO_CHAR(V_DATE, 'DD-MM-YYYY')
        END INTO V_RETVALUE FROM DUAL

     RETURN V_RETVALUE;
    END;

END;
/

上述函数将成功执行,但即使其状态无效,也不会抛出任何错误消息。

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

2 个答案:

答案 0 :(得分:2)

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

相反,一旦您通过Statement.getWarnings()识别出警告,您需要解析从视图ALL_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    

答案 1 :(得分:0)

为什么不在“运行”之前检查对象是否无效?这样的事情会有所帮助。

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