2017-04-13 13 views
1
DECLARE 
     H EMP.EMPNO%TYPE; 
     F EMP.ENAME%TYPE; 
     D NUMBER; 
     S VARCHAR(20); 
BEGIN 
     H := :ENTER_A_DEPTNO; 
     SELECT ENAME, EMPNO INTO F , D 
     FROM EMP 
     WHERE EMPNO = H; 
    CASE 
     WHEN D = H THEN 
     S := F; 
     WHEN D != H THEN 
     S := ' NO DATA !!'; 
    END CASE; 
      DBMS_OUTPUT.PUT_LINE(S); 
END; 

テーブルから番号IDを入力すると、2番目のif文では機能しません。メッセージを表示する方法が不思議です。 ifまたはcaseのための必要はありませんUSING IF文はCASE in P/L SQL内にありますか?

DECLARE 
     H EMP.EMPNO%TYPE; 
     F EMP.ENAME%TYPE; 
BEGIN 
     H := :ENTER_A_DEPTNO; 
     SELECT ENAME INTO F 
     FROM EMP 
     WHERE EMPNO = H; 
     DBMS_OUTPUT.PUT_LINE(F); 
EXCEPTION 
    WHEN NO_DATA_FOUND THEN 
     DBMS_OUTPUT.PUT_LINE(' NO DATA !!'); 
END; 

、値が見つかったときので、あなたは結果が正しい従業員番号に関することを確認することができます:

ORA-01403: no data found 
+0

ようこそStackOverflow。良いフォーマットの質問!ただ一つのこと:あなたは「IF」を話しますが、コードには単一の「IF」はありません。 – trincot

答えて

0

あなたはexceptionブロックを使用することができます。見つからなければ、例外が発生し、実行はEXCEPTIONブロックに迂回されます。

関連する問題