0

私はオラクルデータベースツールの開発に取り組んでおり、関数の実行時に警告メッセージを表示したいです。たとえば、次のようになります。

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 に答える