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