sql >> データベース >  >> RDS >> Oracle

カーソルがOracleのレコードを返すかどうかを確認するにはどうすればよいですか?

    カーソルを開かずにレコードが返されるかどうかを確認することはできません。
    (ここを参照)
    したがって、レコードがあるかどうかを確認するためだけに高速クエリを実行することもできます(たとえば、カウントを使用)。

    または、次のように行うことができます:

    CREATE OR REPLACE PROCEDURE SP_EMPLOYEE_LOOKUP_BY_EMP_ID
    (
          IN_USER_ID IN NUMBER, 
          IN_EMPLOYEE_ID NUMBER,
          IN_HC_AS_ON_DATE VARCHAR2,
          emp_cursor OUT SYS_REFCURSOR
    ) 
    IS 
    
     is_found_rec boolean := false;    
    
     CURSOR employees IS 
        SELECT  * FROM EMPLOYEE e; 
    
    BEGIN    
    
     FOR employee IN employees
      LOOP  
    
        is_found_rec := true;
    
            // do something  
    
      END LOOP; 
    
     if not is_found_rec then 
         // do something else 
     end if;
    
    END;
    


    1. SQLが機能していません

    2. MYSQLでSUMの問題があるテーブルを結合する

    3. データベーステーブルからクラスを生成する

    4. SQL Server COALESCE()の説明