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

Oracle PL/SQLプロシージャの開始セクションの後にカーソルを宣言する方法

    これを行うには、新しいブロックを宣言する必要があります:

    for t in y loop 
        DECLARE
        cursor X IS ( 
                    SELECT DISTINCT s.NIF PREMISE,a.COD_UNICOM READING, A.COD_LECT_AREA AREA
                    FROM SUMCON s, LECT_AREAS a 
                    WHERE a.COD_UNICOM  = t.FCODE
                    AND s.NUM_SUM IN (select num_sum from RFC_UPD_NEW_MRSP_POOL where cod_unicom = t.FCODE)
                    ); 
         BEGIN
    
            for met in x loop 
    ...
            end loop;
         END;
    

    ただし、パラメータで定義されたカーソルyと一緒にこのカーソルを宣言できない理由はよくわかりません。

    cursor X (p_FCODE RFC_UPD_NEW_MRSP_POOL.cod_unicom%TYPE) IS ( 
                SELECT DISTINCT s.NIF PREMISE,a.COD_UNICOM READING, A.COD_LECT_AREA AREA
                FROM SUMCON s, LECT_AREAS a 
                WHERE a.COD_UNICOM  = p_FCODE
                AND s.NUM_SUM IN (select num_sum from RFC_UPD_NEW_MRSP_POOL where cod_unicom = p_FCODE)
                ); 
    

    次に、カーソルを次のように参照できます。

    FOR met IN x(t.FCODE) LOOP
    


    1. ドラッグアンドドロップによるTreeViewノードの再配置

    2. MySQLクエリキャッシング:最大キャッシュサイズは128 MBに制限されていますか?

    3. postgresql-トランザクションブロックを使用するスクリプトはすべてのレコードの作成に失敗します

    4. SQLServerでインポート/エクスポートウィザードを使用する方法-SQLServer/TSQLチュートリアルパート104