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

%ROWTYPEでカーソル値をフェッチする方法

    なぜ2つの変数を使用するのですか?短くすることができます(テストされていません):

    CURSOR TO_ALL(hd APR.ZONE_HD_APPR%TYPE) IS
      SELECT   EMP.EMPLOYEE_CODE,
               EMP.EMP_NAME,
               APR.LEFT_DT,
               APR.RESIGN_TYPE
        FROM   FSC_APPROVAL APR, 
                  JOIN CHR_ALL_EMPLOYEE_BI_V EMP ON EMP.EMPLOYEE_ID = APR.EMP_ID
       WHERE   APR.HOD_APPR = 'Y'
               AND NVL(APR.ZONE_HD_APPR, 'NULL') = NVL(hd, 'NULL')
               AND EMP.EMPLOYEE_ID = APR.EMP_ID;
    
    CUR_VAL TO_ALL%ROWTYPE;
    
    BEGIN
    
          OPEN TO_ALL(CASE TRIGER_BY WHEN 'HOD' THEN 'NULL' ELSE 'Y');
          LOOP
             FETCH TO_ALL INTO   CUR_VAL;
             ...
             EXIT WHEN TO_ALL%NOTFOUND;
          END LOOP;
    
    END;
    



    1. クラウド内のMariaDBバックアップとPostgreSQL-ClusterControlリリース1.6.1

    2. OracleでORDERBY関数が機能しない

    3. 同じ数値データ型への2つの外部キーと、それを2つのテーブルへの参照

    4. OracleSQLDeveloperでSYSとしてデータベースにログインできません