{"id":15197,"date":"2023-06-28T14:28:58","date_gmt":"2023-06-28T20:28:58","guid":{"rendered":"http:\/\/201.237.206.56\/Sitios\/ugit.siua.ac.cr\/?p=15197"},"modified":"2023-06-28T14:28:58","modified_gmt":"2023-06-28T20:28:58","slug":"oracle-bloque-pl-sql-duplicar-aportes-estrategicos","status":"publish","type":"post","link":"https:\/\/sada.services\/?p=15197","title":{"rendered":"ORACLE: bloque PL\/SQL duplicar aportes estrategicos"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>DECLARE\n    \n    --*********************************************************************************\n    -- VARIABLES DE PRINCIPALES\n    --*********************************************************************************\n    -- VARIABLES DEL PLAN DE APORTES DE ORIGEN Y DESTINO\n    V_PLAN_APORTE_ORIGEN NUMBER := 867;\n    V_PLAN_APORTE_DESTINO NUMBER := 82;\n    \n    --*********************************************************************************\n    -- VARIABLES DE CONTROL\n    --*********************************************************************************\n    V_INDICE INTEGER := 1;\n    \n    \n    --*********************************************************************************\n    -- VARIABLES DE APORTE ESTRATEGICO\n    --*********************************************************************************\n    --CURSOR A LOS APORTES ESTRATEGICOS DEL PLAN DE ORIGEN  \n    CURSOR CURSOR_APORTES_ESTRATEGICOS IS\n        SELECT \n            ID_APORTE_ESTRATEGICO,\n            PLAN_APORTE_ESTRATEGICO,\n            ACCION_ESTRATEGICA,\n            CODIGO,\n            DESCRIPCION,\n            JORNADA,\n            PERIODO_ANUAL_INICIAL,\n            PERIODO_ANUAL_FINAL,\n            CUANTIFICACION,\n            LINEA_BASE,\n            INTERES_INSTITUCIONAL\n        FROM PPI.APORTE_ESTRATEGICO AE\n        WHERE PLAN_APORTE_ESTRATEGICO = V_PLAN_APORTE_ORIGEN;    \n    \n    -- VARIABLES DE APORTES ESTRATEGICOS\n    V_ID_APORTE_ESTRATEGICO             PPI.APORTE_ESTRATEGICO.ID_APORTE_ESTRATEGICO%TYPE;\n    V_PLAN_APORTE_ESTRATEGICO           PPI.APORTE_ESTRATEGICO.PLAN_APORTE_ESTRATEGICO%TYPE;\n    V_ACCION_ESTRATEGICA                PPI.APORTE_ESTRATEGICO.ACCION_ESTRATEGICA%TYPE;\n    V_CODIGO                            PPI.APORTE_ESTRATEGICO.CODIGO%TYPE;\n    V_DESCRIPCION                       PPI.APORTE_ESTRATEGICO.DESCRIPCION%TYPE;\n    V_JORNADA                           PPI.APORTE_ESTRATEGICO.JORNADA%TYPE;\n    V_PERIODO_ANUAL_INICIAL             PPI.APORTE_ESTRATEGICO.PERIODO_ANUAL_INICIAL%TYPE;\n    V_PERIODO_ANUAL_FINAL               PPI.APORTE_ESTRATEGICO.PERIODO_ANUAL_FINAL%TYPE;\n    V_CUANTIFICACION                    PPI.APORTE_ESTRATEGICO.CUANTIFICACION%TYPE;\n    V_LINEA_BASE                        PPI.APORTE_ESTRATEGICO.LINEA_BASE%TYPE;\n    V_INTERES_INSTITUCIONAL             PPI.APORTE_ESTRATEGICO.INTERES_INSTITUCIONAL%TYPE;\n\n    -- ID DEL NUEVO APORTE ESTRATEGICO\n    V_ID_NUEVO_APORTE                   PPI.APORTE_ESTRATEGICO.ID_APORTE_ESTRATEGICO%TYPE;\n\n\n    --*********************************************************************************\n    -- VARIABLES DE APORTE_PAE_DISTRIBUCION\n    --*********************************************************************************\n    --CURSOR A APORTE_PAE_DISTRIBUCION\n    CURSOR CURSOR_APORTE_PAE_DISTRIBUCION IS\n        SELECT \n            ID_APORTE_PAE_DISTRIBUCION,\n            APORTE_ESTRATEGICO,\n            PERIODO_ANUAL,\n            DISTRIBUCION_PORCENTUAL\n        FROM PPI.APORTE_PAE_DISTRIBUCION APD\n        WHERE APORTE_ESTRATEGICO = V_ID_APORTE_ESTRATEGICO;  \n        \n        \n    -- VARIABLES DE APORTE PAE_DISTRIBUCION\n    V_ID_APORTE_PAE_DISTRIBUCION        PPI.APORTE_PAE_DISTRIBUCION.ID_APORTE_PAE_DISTRIBUCION%TYPE;\n    V_APORTE_ESTRATEGICO                PPI.APORTE_PAE_DISTRIBUCION.APORTE_ESTRATEGICO%TYPE;\n    V_PERIODO_ANUAL                     PPI.APORTE_PAE_DISTRIBUCION.PERIODO_ANUAL%TYPE;\n    V_DISTRIBUCION_PORCENTUAL           PPI.APORTE_PAE_DISTRIBUCION.DISTRIBUCION_PORCENTUAL%TYPE;\n    \n    -- ID DEL NUEVO APORTE PAE_DISTRIBUCION\n    V_ID_NUEVO_APD                      PPI.APORTE_PAE_DISTRIBUCION.ID_APORTE_PAE_DISTRIBUCION%TYPE;\n  \n  \n    --*********************************************************************************\n    -- VARIABLES DE APORTE_PAE_FUENTE_RECURSO\n    --*********************************************************************************\n    --CURSOR A LOS APORTE_PAE_FUENTE_RECURSO  \n    CURSOR CURSOR_APORTE_PAE_FUENTE_RECURSO  IS\n        SELECT \n            ID_APORTE_PAE_FUENTE_RECURSO,\n            APORTE_ESTRATEGICO,\n            FUENTE_RECURSO\n        FROM PPI.APORTE_PAE_FUENTE_RECURSO APFR\n        WHERE APORTE_ESTRATEGICO = V_ID_APORTE_ESTRATEGICO;  \n        \n        \n    -- VARIABLES DE APORTE_PAE_FUENTE_RECURSO \n    V_ID_APORTE_PAE_FUENTE_RECURSO      PPI.APORTE_PAE_FUENTE_RECURSO.ID_APORTE_PAE_FUENTE_RECURSO%TYPE;\n    V_APORTE_ESTRATEGICO_APFR           PPI.APORTE_PAE_FUENTE_RECURSO.APORTE_ESTRATEGICO%TYPE;\n    V_FUENTE_RECURSO                    PPI.APORTE_PAE_FUENTE_RECURSO.FUENTE_RECURSO%TYPE;\n\n    \n    -- ID DEL NUEVO APORTE PAE_DISTRIBUCION\n    V_ID_NUEVO_APFR                      PPI.APORTE_PAE_FUENTE_RECURSO.ID_APORTE_PAE_FUENTE_RECURSO%TYPE;\n    \n    \nBEGIN\n\n   DBMS_OUTPUT.PUT_LINE('*********************************************************');\n    DBMS_OUTPUT.PUT_LINE('*********************************************************');\n    DBMS_OUTPUT.PUT_LINE('BIENVENIDO:');\n    DBMS_OUTPUT.PUT_LINE('*********************************************************');\n    DBMS_OUTPUT.PUT_LINE('*********************************************************');\n    DBMS_OUTPUT.PUT_LINE('FUNCI\u00d3N: ESTE BLOQUE PL\/SQL MIGRA LOS APORTES ESTRAT\u00c9GICOS DEL PLAN DE APORTE ORIGEN AL PLAN DESTINO');\n    DBMS_OUTPUT.PUT_LINE('---------------------');\n    DBMS_OUTPUT.PUT_LINE('| PLANES DE APORTES |');\n    DBMS_OUTPUT.PUT_LINE('---------------------');\n    DBMS_OUTPUT.PUT_LINE('| ORIGEN | DESTINO  |');\n    DBMS_OUTPUT.PUT_LINE('---------------------');\n    DBMS_OUTPUT.PUT_LINE('|   ' || V_PLAN_APORTE_ORIGEN || '  |    ' ||V_PLAN_APORTE_DESTINO || '    |');\n    DBMS_OUTPUT.PUT_LINE('---------------------');\n    \n    DBMS_OUTPUT.PUT_LINE('');\n    DBMS_OUTPUT.PUT_LINE('');\n    DBMS_OUTPUT.PUT_LINE('');\n    \n    \n    DBMS_OUTPUT.PUT_LINE('*********************************************************');\n    DBMS_OUTPUT.PUT_LINE('*********************************************************');\n    DBMS_OUTPUT.PUT_LINE('APORTES ESTRATEGICOS A DUPLICAR:');\n    DBMS_OUTPUT.PUT_LINE('*********************************************************');\n    DBMS_OUTPUT.PUT_LINE('*********************************************************');\n    DBMS_OUTPUT.PUT_LINE('|INDICE | ID:  |  PAE  | AE  | COD |     DESCRIP      | JORNADA | PAI  | PAF  | CUANTI | LINEA BASE | INTERES |' );\n    DBMS_OUTPUT.PUT_LINE('-----------------------------------------------------------------------------------------------------');\n    \n    --***********************************************************************\n    -- BLOQUE DE INFORMACION: APORTES ESTRATEGICOS\n    --***********************************************************************\n    \n    FOR AE IN CURSOR_APORTES_ESTRATEGICOS LOOP\n    \n        \n        -- *****************************************************************\n        -- GUARDAR LOS VALORES DEL REGISTRO EN LAS VARIABLES\n        -- *****************************************************************\n        V_ID_APORTE_ESTRATEGICO             := AE.ID_APORTE_ESTRATEGICO;\n        V_PLAN_APORTE_ESTRATEGICO           := AE.PLAN_APORTE_ESTRATEGICO;\n        V_ACCION_ESTRATEGICA                := AE.ACCION_ESTRATEGICA;\n        V_CODIGO                            := AE.CODIGO;\n        V_DESCRIPCION                       := SUBSTR(AE.DESCRIPCION, 1, 15);\n        V_JORNADA                           := AE.JORNADA;\n        V_PERIODO_ANUAL_INICIAL             := AE.PERIODO_ANUAL_INICIAL;\n        V_PERIODO_ANUAL_FINAL               := AE.PERIODO_ANUAL_FINAL;\n        V_CUANTIFICACION                    := AE.CUANTIFICACION;\n        V_LINEA_BASE                        := AE.LINEA_BASE;\n        V_INTERES_INSTITUCIONAL             := AE.INTERES_INSTITUCIONAL;\n        \n        \n        \n        DBMS_OUTPUT.PUT_LINE(   '| '|| \n                                V_INDICE                   || ' |  '    || \n                                V_ID_APORTE_ESTRATEGICO    || ' |  '    || \n                                V_PLAN_APORTE_ESTRATEGICO  || '  | '    || \n                                V_ACCION_ESTRATEGICA       || ' | '     ||\n                                V_CODIGO                   || '  | '    ||\n                                V_DESCRIPCION              || '  |    ' ||\n                                V_JORNADA                  || '    | '  ||\n                                V_PERIODO_ANUAL_INICIAL    || '  | '    ||\n                                V_PERIODO_ANUAL_FINAL      || '  |    ' ||\n                                V_CUANTIFICACION           || '   |    ' ||\n                                V_LINEA_BASE               || '       |  ' ||\n                                V_INTERES_INSTITUCIONAL    || '      |');\n\n        V_INDICE := V_INDICE +1;\n\n    END LOOP;\n    \n    --REINICIAR INDICE\n    V_INDICE :=1 ;\n    \n    \n\n\n    FOR AE IN CURSOR_APORTES_ESTRATEGICOS LOOP\n    \n    \n        -- *****************************************************************\n        -- GUARDAR LOS VALORES DEL REGISTRO EN LAS VARIABLES\n        -- *****************************************************************\n        V_ID_APORTE_ESTRATEGICO             := AE.ID_APORTE_ESTRATEGICO;\n        V_PLAN_APORTE_ESTRATEGICO           := AE.PLAN_APORTE_ESTRATEGICO;\n        V_ACCION_ESTRATEGICA                := AE.ACCION_ESTRATEGICA;\n        V_CODIGO                            := AE.CODIGO;\n        V_DESCRIPCION                       := AE.DESCRIPCION;\n        V_JORNADA                           := AE.JORNADA;\n        V_PERIODO_ANUAL_INICIAL             := AE.PERIODO_ANUAL_INICIAL;\n        V_PERIODO_ANUAL_FINAL               := AE.PERIODO_ANUAL_FINAL;\n        V_CUANTIFICACION                    := AE.CUANTIFICACION;\n        V_LINEA_BASE                        := AE.LINEA_BASE;\n        V_INTERES_INSTITUCIONAL             := AE.INTERES_INSTITUCIONAL;\n    \n\n        DBMS_OUTPUT.PUT_LINE('');\n        DBMS_OUTPUT.PUT_LINE('');\n        DBMS_OUTPUT.PUT_LINE('****************************************************************************************************************');\n        DBMS_OUTPUT.PUT_LINE('****************************************************************************************************************');\n        DBMS_OUTPUT.PUT_LINE('                                         APORTE: ' || V_INDICE );\n        DBMS_OUTPUT.PUT_LINE('****************************************************************************************************************');\n        DBMS_OUTPUT.PUT_LINE('****************************************************************************************************************');\n        DBMS_OUTPUT.PUT_LINE('');\n    \n        DBMS_OUTPUT.PUT_LINE('');\n        DBMS_OUTPUT.PUT_LINE('');\n        DBMS_OUTPUT.PUT_LINE('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');\n        DBMS_OUTPUT.PUT_LINE('                                         PASO 1: DUPLICAR EL APORTE ESTRATEGICO' );\n        DBMS_OUTPUT.PUT_LINE('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');\n        DBMS_OUTPUT.PUT_LINE('');\n    \n    \n    \n        DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------------------');\n        DBMS_OUTPUT.PUT_LINE('|                                   APORTE ESTRATEGICO A TRABAJAR:  ' || V_ID_APORTE_ESTRATEGICO || '                                          |' );\n        DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------------------');\n        DBMS_OUTPUT.PUT_LINE('| ID:  |  PAE  | AE  | COD |     DESCRIP      | JORNADA | PAI  | PAF  | CUANTI | LINEA BASE | INTERES |' );\n        DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------------------');\n        DBMS_OUTPUT.PUT_LINE(   '| ' ||\n                                V_ID_APORTE_ESTRATEGICO    || '  |  '   || \n                                V_PLAN_APORTE_ESTRATEGICO  || ' | '    || \n                                V_ACCION_ESTRATEGICA       || '  | '     ||\n                                V_CODIGO                   || ' | '    ||\n                                SUBSTR(AE.DESCRIPCION, 1, 15)             || '  |    ' ||\n                                V_JORNADA                  || '    | '  ||\n                                V_PERIODO_ANUAL_INICIAL    || '  | '    ||\n                                V_PERIODO_ANUAL_FINAL      || '  |    ' ||\n                                V_CUANTIFICACION           || '   |    ' ||\n                                V_LINEA_BASE               || '       |  ' ||\n                                V_INTERES_INSTITUCIONAL    || '      |');\n        DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------------------');\n        DBMS_OUTPUT.PUT_LINE('');\n        DBMS_OUTPUT.PUT_LINE('');\n        DBMS_OUTPUT.PUT_LINE('');\n        \n       \n        \n     \n        -- *****************************************************************\n        -- REALIZAR INSERT DE LOS DATOS\n        -- *****************************************************************\n        INSERT INTO PPI.APORTE_ESTRATEGICO(\n            ID_APORTE_ESTRATEGICO,\n            PLAN_APORTE_ESTRATEGICO,\n            ACCION_ESTRATEGICA,\n            CODIGO,\n            DESCRIPCION,\n            JORNADA,\n            PERIODO_ANUAL_INICIAL,\n            PERIODO_ANUAL_FINAL,\n            FECHA_CREACION,\n            USUARIO_CREACION,\n            FECHA_MODIFICACION,\n            USUARIO_MODIFICACION,\n            CAMPO_CONFIGURABLE,\n            VERSION,\n            CUANTIFICACION,\n            LINEA_BASE,\n            INTERES_INSTITUCIONAL)\n        VALUES( \n            SQ_APORTE_ESTRATEGICO.NEXTVAL,\n            V_PLAN_APORTE_DESTINO,\n            V_ACCION_ESTRATEGICA,\n            V_CODIGO,\n            V_DESCRIPCION,\n            V_JORNADA,\n            V_PERIODO_ANUAL_INICIAL,\n            V_PERIODO_ANUAL_FINAL,\n            SYSDATE,\n            1,\n            SYSDATE,\n            1,\n            0,\n            0,\n            V_CUANTIFICACION,\n            V_LINEA_BASE,\n            V_INTERES_INSTITUCIONAL) RETURNING ID_APORTE_ESTRATEGICO INTO V_ID_NUEVO_APORTE;\n            \n            \n            DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------------------');\n            DBMS_OUTPUT.PUT_LINE('|                                   APORTE ESTRATEGICO DUPLICADO:  ' || V_ID_NUEVO_APORTE || '                                          |' );\n            DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------------------');\n            DBMS_OUTPUT.PUT_LINE('| ID:  |  PAE  | AE  | COD |     DESCRIP      | JORNADA | PAI  | PAF  | CUANTI | LINEA BASE | INTERES |' );\n            DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------------------');\n            DBMS_OUTPUT.PUT_LINE(   '|' ||\n                                    V_ID_NUEVO_APORTE          || '  |  '   || \n                                    V_PLAN_APORTE_DESTINO      || ' | '    || \n                                    V_ACCION_ESTRATEGICA       || '  | '     ||\n                                    V_CODIGO                   || ' | '    ||\n                                    SUBSTR(AE.DESCRIPCION, 1, 15)             || '  |    ' ||\n                                    V_JORNADA                  || '    | '  ||\n                                    V_PERIODO_ANUAL_INICIAL    || '  | '    ||\n                                    V_PERIODO_ANUAL_FINAL      || '  |    ' ||\n                                    V_CUANTIFICACION           || '   |    ' ||\n                                    V_LINEA_BASE               || '       |  ' ||\n                                    V_INTERES_INSTITUCIONAL    || '      |');\n            DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------------------------------------------------------------');\n            DBMS_OUTPUT.PUT_LINE('');\n            DBMS_OUTPUT.PUT_LINE('');\n            \n            \n            \n            \n            DBMS_OUTPUT.PUT_LINE('');\n            DBMS_OUTPUT.PUT_LINE('');\n            DBMS_OUTPUT.PUT_LINE('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');\n            DBMS_OUTPUT.PUT_LINE('                                         PASO 2: DUPLICAR DISTRIBUCI\u00d3N' );\n            DBMS_OUTPUT.PUT_LINE('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');\n            DBMS_OUTPUT.PUT_LINE('');\n        \n        \n            --***********************************************************************\n            -- BLOQUE DE INFORMACION: DISTRIBUCIONES\n            --***********************************************************************\n            \n        \n            DBMS_OUTPUT.PUT_LINE('-------------------------------');\n            DBMS_OUTPUT.PUT_LINE('| DISTRIBUCIONES A DUPLICAR   |' );\n            DBMS_OUTPUT.PUT_LINE('-------------------------------');\n            DBMS_OUTPUT.PUT_LINE('| ID:  | AE  |  PA  | DISTRI  |' );\n            DBMS_OUTPUT.PUT_LINE('-------------------------------');\n            \n            \n            \n            FOR APD IN CURSOR_APORTE_PAE_DISTRIBUCION LOOP\n                \n                -- *****************************************************************\n                -- GUARDAR LOS VALORES DEL REGISTRO EN LAS VARIABLES\n                -- *****************************************************************\n                V_ID_APORTE_PAE_DISTRIBUCION        := APD.ID_APORTE_PAE_DISTRIBUCION;\n                V_APORTE_ESTRATEGICO                := APD.APORTE_ESTRATEGICO;\n                V_PERIODO_ANUAL                     := APD.PERIODO_ANUAL;\n                V_DISTRIBUCION_PORCENTUAL           := APD.DISTRIBUCION_PORCENTUAL;\n                \n                \n                DBMS_OUTPUT.PUT_LINE('|' ||\n                                    V_ID_APORTE_PAE_DISTRIBUCION          || '  |  '   || \n                                    V_APORTE_ESTRATEGICO      || ' | '    || \n                                    V_PERIODO_ANUAL       || '  | '     ||\n                                    V_DISTRIBUCION_PORCENTUAL                   || ' | ' );\n                \n                \n            END LOOP;\n            \n            DBMS_OUTPUT.PUT_LINE('');\n            DBMS_OUTPUT.PUT_LINE('');\n            \n            \n            \n            \n            DBMS_OUTPUT.PUT_LINE('-------------------------------');\n            DBMS_OUTPUT.PUT_LINE('| DISTRIBUCIONES A DUPLICADAS |' );\n            DBMS_OUTPUT.PUT_LINE('-------------------------------');\n            DBMS_OUTPUT.PUT_LINE('| ID:  | AE  |  PA  | DISTRI  |' );\n            DBMS_OUTPUT.PUT_LINE('-------------------------------');\n            \n            FOR APD IN CURSOR_APORTE_PAE_DISTRIBUCION LOOP\n                \n\n                -- *****************************************************************\n                -- GUARDAR LOS VALORES DEL REGISTRO EN LAS VARIABLES\n                -- *****************************************************************\n                V_ID_APORTE_PAE_DISTRIBUCION        := APD.ID_APORTE_PAE_DISTRIBUCION;\n                V_APORTE_ESTRATEGICO                := APD.APORTE_ESTRATEGICO;\n                V_PERIODO_ANUAL                     := APD.PERIODO_ANUAL;\n                V_DISTRIBUCION_PORCENTUAL           := APD.DISTRIBUCION_PORCENTUAL;\n\n                -- *****************************************************************\n                -- REALIZAR INSERT DE LAS DISTRIBUCIONES\n                -- *****************************************************************\n                INSERT INTO PPI.APORTE_PAE_DISTRIBUCION(\n                    ID_APORTE_PAE_DISTRIBUCION,\n                    APORTE_ESTRATEGICO,\n                    PERIODO_ANUAL,\n                    DISTRIBUCION_PORCENTUAL,\n                    FECHA_CREACION,\n                    USUARIO_CREACION,\n                    FECHA_MODIFICACION,\n                    USUARIO_MODIFICACION,\n                    CAMPO_CONFIGURABLE,\n                    VERSION)\n                VALUES( \n                    SQ_APORTE_PAE_DISTRIBUCION.NEXTVAL,\n                    V_ID_NUEVO_APORTE,\n                    V_PERIODO_ANUAL,\n                    V_DISTRIBUCION_PORCENTUAL,\n                    SYSDATE,\n                    1,\n                    SYSDATE,\n                    1,\n                    0,\n                    0) RETURNING ID_APORTE_PAE_DISTRIBUCION INTO V_ID_NUEVO_APD;\n               \n               \n                    DBMS_OUTPUT.PUT_LINE('|' ||\n                                    V_ID_NUEVO_APD          || '  |  '   || \n                                    V_ID_NUEVO_APORTE      || ' | '    || \n                                    V_PERIODO_ANUAL       || '  | '     ||\n                                    V_DISTRIBUCION_PORCENTUAL                   || ' | ' );\n                                    \n                \n        END LOOP;\n\n\n\n        DBMS_OUTPUT.PUT_LINE('');\n        DBMS_OUTPUT.PUT_LINE('');\n        DBMS_OUTPUT.PUT_LINE('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');\n        DBMS_OUTPUT.PUT_LINE('                                         PASO 3: DUPLICAR FUENTE DE RECURSO' );\n        DBMS_OUTPUT.PUT_LINE('++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');\n        DBMS_OUTPUT.PUT_LINE('');\n    \n        \n        --***********************************************************************\n        -- BLOQUE DE INFORMACION: FUENTE DE RECURSO\n        --***********************************************************************\n            \n        \n        DBMS_OUTPUT.PUT_LINE('-------------------------------');\n        DBMS_OUTPUT.PUT_LINE('| FUENTE RECURSO A DUPLICAR   |' );\n        DBMS_OUTPUT.PUT_LINE('-------------------------------');\n        DBMS_OUTPUT.PUT_LINE('| ID:  | AE  | FUENTE RECURSO |' );\n        DBMS_OUTPUT.PUT_LINE('-------------------------------');\n            \n            \n            \n        FOR APFR IN CURSOR_APORTE_PAE_FUENTE_RECURSO LOOP\n            \n            -- *****************************************************************\n            -- GUARDAR LOS VALORES DEL REGISTRO EN LAS VARIABLES\n            -- *****************************************************************\n            V_ID_APORTE_PAE_FUENTE_RECURSO      := APFR.ID_APORTE_PAE_FUENTE_RECURSO;\n            V_APORTE_ESTRATEGICO_APFR           := APFR.APORTE_ESTRATEGICO;\n            V_FUENTE_RECURSO                    := APFR.FUENTE_RECURSO;\n           \n            DBMS_OUTPUT.PUT_LINE('|' ||\n                                V_ID_APORTE_PAE_FUENTE_RECURSO          || '  |  '   || \n                                V_APORTE_ESTRATEGICO_APFR      || ' | '    || \n                                V_FUENTE_RECURSO       || '  | ' );\n            \n            \n        END LOOP;\n            \n            DBMS_OUTPUT.PUT_LINE('');\n            DBMS_OUTPUT.PUT_LINE('');\n            \n            \n          \n        DBMS_OUTPUT.PUT_LINE('-------------------------------');\n        DBMS_OUTPUT.PUT_LINE('| FUENTE RECURSO A DUPLICADOS |' );\n        DBMS_OUTPUT.PUT_LINE('-------------------------------');\n        DBMS_OUTPUT.PUT_LINE('| ID:  | AE  |  PA  | DISTRI  |' );\n        DBMS_OUTPUT.PUT_LINE('-------------------------------');\n        \n        FOR APFR IN CURSOR_APORTE_PAE_FUENTE_RECURSO LOOP\n            \n\n            -- *****************************************************************\n            -- GUARDAR LOS VALORES DEL REGISTRO EN LAS VARIABLES\n            -- *****************************************************************\n            V_ID_APORTE_PAE_FUENTE_RECURSO      := APFR.ID_APORTE_PAE_FUENTE_RECURSO;\n            V_APORTE_ESTRATEGICO_APFR           := APFR.APORTE_ESTRATEGICO;\n            V_FUENTE_RECURSO                    := APFR.FUENTE_RECURSO;\n\n            -- *****************************************************************\n            -- REALIZAR INSERT DE LAS FUENTES DE RECURSOS\n            -- *****************************************************************\n            INSERT INTO PPI.APORTE_PAE_FUENTE_RECURSO(\n                ID_APORTE_PAE_FUENTE_RECURSO,\n                APORTE_ESTRATEGICO,\n                FUENTE_RECURSO,\n                FECHA_CREACION,\n                USUARIO_CREACION,\n                FECHA_MODIFICACION,\n                USUARIO_MODIFICACION,\n                CAMPO_CONFIGURABLE,\n                VERSION)\n            VALUES( \n                SQ_APORTE_PAE_FUENTE_RECURSO.NEXTVAL,\n                V_ID_NUEVO_APORTE,\n                V_FUENTE_RECURSO,\n                SYSDATE,\n                1,\n                SYSDATE,\n                1,\n                0,\n                0) RETURNING ID_APORTE_PAE_FUENTE_RECURSO INTO V_ID_NUEVO_APFR;\n           \n           \n                DBMS_OUTPUT.PUT_LINE('|' ||\n                                V_ID_NUEVO_APFR          || '  |  '   || \n                                V_ID_NUEVO_APORTE      || ' | '    || \n                                V_FUENTE_RECURSO       || '  | ' );\n                                \n                                \n        END LOOP;                  \n            \n   \n        \n        \n        V_INDICE := V_INDICE +1;        \n    END LOOP;\n    \n    --COMMIT;\n    \n    --DBMS_OUTPUT.PUT_LINE('Proceso completado.');\n    \n    EXCEPTION\n        WHEN OTHERS THEN\n        -- Manejo de errores\n        DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);\n        ROLLBACK;\n    \nEND;\n\/\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[519],"tags":[523,521,522,502,444],"class_list":["post-15197","post","type-post","status-publish","format-standard","hentry","category-oracle","tag-aportes-estrategicos","tag-bloque-pl-sql","tag-duplicar","tag-oracle","tag-sigesa"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/15197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15197"}],"version-history":[{"count":1,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/15197\/revisions"}],"predecessor-version":[{"id":15198,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/15197\/revisions\/15198"}],"wp:attachment":[{"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}