0

我正在开发 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 中抛出警告消息?

4

2 回答 2

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    
于 2012-05-03T18:55:44.030 回答
0

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

select *
from 
   dba_objects 
where 
   status != 'VALID'
order by
   owner,
   object_type
;
于 2012-05-03T12:03:55.693 回答