2017-11-09 6 views
0

私は、データベース・リンクのビューに取り組んでストアドプロシージャをたくさん持っています。をチェック!

私は、オブジェクト指向プログラミングの方法でチェック()関数を作成しましたように、すべての手順を実行する前に、ビューが利用可能であるかどうかを確認したいと思います。

今私が作ることができます(チェック()= 1)場合、その後...それ以外はnullを..work。終了する。

機能は次のとおりです。

create or replace FUNCTION CHECK_MYVIEW RETURN NUMBER IS 
CHECKED NUMBER; 
BEGIN 

    BEGIN 

    select 1 
    into CHECKED 
    from MYVIEW 
    where rownum = 1 
    ; 

    EXCEPTION WHEN OTHERS THEN 
    CHECKED:=0; 
    END; 

    RETURN CHECKED; 

END CHECK_MYVIEW; 

私はいくつかのテストの後にチェッククエリを書いていると、結果は大丈夫です。ビューは、いくつかのレコードを持っているし、リモートデータベースといくつかの接続に問題がある場合でもあれば、私が言うことができる選択のこの種の 。しかし、これは私自身の解決策です。

同じ機能を得るために最適化されたオラクルのクエリがありますか?あなたは、メタデータをチェックしようとすることができ

答えて

0

...例外のいずれかの種類が例外の昇給なしに動作しないために :

DECLARE 
    checked INT; 
BEGIN 

    SELECT COUNT(*) 
    INTO checked 
    FROM [email protected] 
    WHERE name = 'xxx' 
    AND owner = 'yyy'; 

    --checked 0 -- not exists, 1 - exists 

END; 
+0

私はそれが存在することを知って、私はそれが –

+0

を働いているかどうかを知りたいです@ JapJapだからちょうどそれを試してみませんか? – lad2025