Merge lento

carlos consulta, estoy ejecutando un merge ,pero tarda demasiado noce a que se debe, el merge llena los datos de un select ,ese select me muestra rapido la info , pero para insertar a la tabla destino se demora una eternidad . ayuda gracias pongo el merge :

 

create or replace

PROCEDURE SP_MERGE_FACT_ALUMNOPRUE AUTHID CURRENT_USER

IS

BEGIN

 

  ------------------------------

  --OSILDM.FACT_ALUMNOPERIODO--

  ------------------------------

 

  MERGE /*+ APPEND */ INTO MRIVERA.FACT_ALUMNOPERIODOPRUE I

  USING(SELECT

 L3.ID_INSTITUCION,

 L3.ID_GRUPOPROGRAMA,

 L2.ID_GRUPOPRODUCTO,

 L1.ID_PRODUCTO,

 L5.ID_SEDE,

 CASE

WHEN T4.GFORMAINGRESO=8

THEN

 (

SELECT

 Z1.ID_MODALIDADINGRESO

FROM

 OSILDM.LK_MODALIDADINGRESO Z1

WHERE

 Z1.COD_TABLA             =5

AND Z1.COD_MODALIDADINGRESO=T4.GTIPOINGRESO

 )

ELSE L8.ID_MODALIDADINGRESO

 END AS FORMAINGRESO,

 L7.ID_ESTADO,

 CASE

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 0 AND 45

THEN 1

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 46 AND 85

THEN 2

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 86 AND 125

THEN 3

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 126 AND 165

THEN 4

WHEN T1.CPROGRAMA    =1

AND T1.NCREDITO_ACUM >165

THEN 5

 --PROGRAMA CEPEL

WHEN L3.COD_GRUPOPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 0 AND 65

THEN 1

WHEN L3.COD_GRUPOPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 66 AND 130

THEN 2

WHEN L3.COD_GRUPOPROGRAMA=1

AND T1.NCREDITO_ACUM     >131

THEN 3

 --CHEFF

WHEN L3.COD_GRUPOPROGRAMA=6

AND L2.COD_ITEM          =1

AND T1.NCREDITO_ACUM BETWEEN 0 AND 65

THEN 1

WHEN L3.COD_GRUPOPROGRAMA=6

AND L2.COD_ITEM          =1

AND T1.NCREDITO_ACUM BETWEEN 66 AND 130

THEN 2

WHEN L3.COD_GRUPOPROGRAMA=6

AND L2.COD_ITEM          =1

AND T1.NCREDITO_ACUM     >131

THEN 3

 END AS ANIOCURSO,

 CASE --CALCULA EL CICLO

 --PROGRAMA REGULAR

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 0 AND 20

THEN 1

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 21 AND 40

THEN 2

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 41 AND 60

THEN 3

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 61 AND 80

THEN 4

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 81 AND 100

THEN 5

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 101 AND 120

THEN 6

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 121 AND 140

THEN 7

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 141 AND 160

THEN 8

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 161 AND 180

THEN 9

ELSE 10

 END AS CICLO,

 NVL(L6.ID_CARRERADG,0) AS ID_CARRERADG,

 L4.ID_PERIODO,

 L9.ID_ALUMNO,

 T1.NPONDERADO,

 T1.NACUMULADO,

 CASE

 --CALCULO SI EL ALUMNO SE MATRICULO EN EL PERIODO ANTERIOR

 ---PROGRAMA REGULAR

WHEN T1.CPROGRAMA    =1

AND L4.ID_TIPOPERIODO=1

THEN 0

WHEN T1.CPROGRAMA    =1

AND L4.ID_TIPOPERIODO=2

THEN NVL(

 (

SELECT

 CASE

WHEN T11.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA

FROM

 OSILBI.ALUMNO_PERIODO T11

JOIN OSILBI.PERIODO T12

ON

 T12.CPERIODO  =T11.CPERIODO

AND T12.GVISIBLE=1

JOIN OSILDM.LK_PERIODO T13

ON

 T13.DESC_PERIODO     =T12.CPERIODO_NEW

AND NVL(T13.GPERIODO,0)=NVL(T12.GTIPO_PERIODO,0)

JOIN OSILBI.DIMENSIONES_BI T14

ON

 T14.CCARRERA           =T11.CCARRERA

AND NVL(T14.CARRERA_DG,0)=NVL(T11.CCARRERA_DG,0)

WHERE

 T11.CPERSONA        =T1.CPERSONA

AND T14.CGPROGRAMA    =L3.COD_GRUPOPROGRAMA

AND T14.CPRODUCTO     =L1.COD_ITEM

AND T11.CINGRESO      =T1.CINGRESO

AND T13.ANIOINICIO    =(L4.ANIOINICIO   -1)

AND T13.ID_TIPOPERIODO=L4.ID_TIPOPERIODO+1

 )

 ,0)

WHEN T1.CPROGRAMA    =1

AND L4.ID_TIPOPERIODO=3

THEN NVL(

 (

SELECT

 CASE

WHEN T11.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA

FROM

 OSILBI.ALUMNO_PERIODO T11

JOIN OSILBI.PERIODO T12

ON

 T12.CPERIODO  =T11.CPERIODO

AND T12.GVISIBLE=1

JOIN OSILDM.LK_PERIODO T13

ON

 T13.DESC_PERIODO=T12.CPERIODO_NEW

JOIN OSILBI.DIMENSIONES_BI T14

ON

 T14.CCARRERA           =T11.CCARRERA

AND NVL(T14.CARRERA_DG,0)=NVL(T11.CCARRERA_DG,0)

WHERE

 T11.CPERSONA                               =T1.CPERSONA

AND T14.CGPROGRAMA                           =L3.COD_GRUPOPROGRAMA

AND T14.CPRODUCTO                            =L1.COD_ITEM

AND T11.CINGRESO                             =T1.CINGRESO

AND CONCAT(T13.ANIOINICIO,T13.ID_TIPOPERIODO)=CONCAT(L4.ANIOINICIO,

 L4.ID_TIPOPERIODO-1)

 )

 ,0)

WHEN L3.COD_GRUPOPROGRAMA=1

AND L4.ID_TIPOPERIODO    =2

THEN NVL(

 (

SELECT

 CASE

WHEN T11.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA

FROM

 OSILBI.ALUMNO_PERIODO T11

JOIN OSILBI.PERIODO T12

ON

 T12.CPERIODO  =T11.CPERIODO

AND T12.GVISIBLE=1

JOIN OSILDM.LK_PERIODO T13

ON

 T13.DESC_PERIODO=T12.CPERIODO_NEW

JOIN OSILBI.DIMENSIONES_BI T14

ON

 T14.CCARRERA           =T11.CCARRERA

AND NVL(T14.CARRERA_DG,0)=NVL(T11.CCARRERA_DG,0)

WHERE

 T11.CPERSONA                               =T1.CPERSONA

AND T14.CGPROGRAMA                           =L3.COD_GRUPOPROGRAMA

AND T14.CPRODUCTO                            =L1.COD_ITEM

AND T11.CINGRESO                             =T1.CINGRESO

AND CONCAT(T13.ANIOINICIO,T13.ID_TIPOPERIODO)=CONCAT(L4.ANIOINICIO-1,

 L4.ID_TIPOPERIODO                                               +2)

 )

 ,0)

WHEN L3.COD_GRUPOPROGRAMA=1

AND L4.ID_TIPOPERIODO    =3

THEN NVL(

 (

SELECT

 CASE

WHEN T11.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA

FROM

 OSILBI.ALUMNO_PERIODO T11

JOIN OSILBI.PERIODO T12

ON

 T12.CPERIODO  =T11.CPERIODO

AND T12.GVISIBLE=1

JOIN OSILDM.LK_PERIODO T13

ON

 T13.DESC_PERIODO=T12.CPERIODO_NEW

JOIN OSILBI.DIMENSIONES_BI T14

ON

 T14.CCARRERA           =T11.CCARRERA

AND NVL(T14.CARRERA_DG,0)=NVL(T11.CCARRERA_DG,0)

WHERE

 T11.CPERSONA                               =T1.CPERSONA

AND T14.CGPROGRAMA                           =L3.COD_GRUPOPROGRAMA

AND T14.CPRODUCTO                            =L1.COD_ITEM

AND T11.CINGRESO                             =T1.CINGRESO

AND CONCAT(T13.ANIOINICIO,T13.ID_TIPOPERIODO)=CONCAT(L4.ANIOINICIO,

 L4.ID_TIPOPERIODO-1)

 )

 ,0)

WHEN L3.COD_GRUPOPROGRAMA=1

AND L4.ID_TIPOPERIODO    =4

THEN NVL(

 (

SELECT

 CASE

WHEN T11.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA

FROM

 OSILBI.ALUMNO_PERIODO T11

JOIN OSILBI.PERIODO T12

ON

 T12.CPERIODO  =T11.CPERIODO

AND T12.GVISIBLE=1

JOIN OSILDM.LK_PERIODO T13

ON

 T13.DESC_PERIODO=T12.CPERIODO_NEW

JOIN OSILBI.DIMENSIONES_BI T14

ON

 T14.CCARRERA           =T11.CCARRERA

AND NVL(T14.CARRERA_DG,0)=NVL(T11.CCARRERA_DG,0)

WHERE

 T11.CPERSONA                               =T1.CPERSONA

AND T14.CGPROGRAMA                           =L3.COD_GRUPOPROGRAMA

AND T14.CPRODUCTO                            =L1.COD_ITEM

AND T11.CINGRESO                             =T1.CINGRESO

AND CONCAT(T13.ANIOINICIO,T13.ID_TIPOPERIODO)=CONCAT(L4.ANIOINICIO,

 L4.ID_TIPOPERIODO-1)

 )

 ,0)

WHEN L3.COD_GRUPOPROGRAMA=6

AND L2.COD_ITEM          =1

AND L4.ID_TIPOPERIODO    =2

THEN NVL(

 (

SELECT

 CASE

WHEN T11.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA

FROM

 OSILBI.ALUMNO_PERIODO T11

JOIN OSILBI.PERIODO T12

ON

 T12.CPERIODO  =T11.CPERIODO

AND T12.GVISIBLE=1

JOIN OSILDM.LK_PERIODO T13

ON

 T13.DESC_PERIODO=T12.CPERIODO_NEW

JOIN OSILBI.DIMENSIONES_BI T14

ON

 T14.CCARRERA           =T11.CCARRERA

AND NVL(T14.CARRERA_DG,0)=NVL(T11.CCARRERA_DG,0)

WHERE

 T12.GTIPO_PERIODO                          =1

AND T11.CPERSONA                             =T1.CPERSONA

AND T14.CGPROGRAMA                           =L3.COD_GRUPOPROGRAMA

AND T14.CPRODUCTO                            =L1.COD_ITEM

AND T11.CINGRESO                             =T1.CINGRESO

AND CONCAT(T13.ANIOINICIO,T13.ID_TIPOPERIODO)=CONCAT(L4.ANIOINICIO-1,

 L4.ID_TIPOPERIODO                                               +2)

 )

 ,0)

WHEN L3.COD_GRUPOPROGRAMA=6

AND L2.COD_ITEM          =1

AND L4.ID_TIPOPERIODO    =3

THEN NVL(

 (

SELECT

 CASE

WHEN T11.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA

FROM

 OSILBI.ALUMNO_PERIODO T11

JOIN OSILBI.PERIODO T12

ON

 T12.CPERIODO  =T11.CPERIODO

AND T12.GVISIBLE=1

JOIN OSILDM.LK_PERIODO T13

ON

 T13.DESC_PERIODO=T12.CPERIODO_NEW

JOIN OSILBI.DIMENSIONES_BI T14

ON

 T14.CCARRERA           =T11.CCARRERA

AND NVL(T14.CARRERA_DG,0)=NVL(T11.CCARRERA_DG,0)

WHERE

 T12.GTIPO_PERIODO                          =1

AND T11.CPERSONA                             =T1.CPERSONA

AND T14.CGPROGRAMA                           =L3.COD_GRUPOPROGRAMA

AND T14.CPRODUCTO                            =L1.COD_ITEM

AND T11.CINGRESO                             =T1.CINGRESO

AND CONCAT(T13.ANIOINICIO,T13.ID_TIPOPERIODO)=CONCAT(L4.ANIOINICIO,

 L4.ID_TIPOPERIODO-1)

 )

 ,0)

WHEN L3.COD_GRUPOPROGRAMA=6

AND L2.COD_ITEM          =1

AND L4.ID_TIPOPERIODO    =4

THEN NVL(

 (

SELECT

 CASE

WHEN T11.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA

FROM

 OSILBI.ALUMNO_PERIODO T11

JOIN OSILBI.PERIODO T12

ON

 T12.CPERIODO  =T11.CPERIODO

AND T12.GVISIBLE=1

JOIN OSILDM.LK_PERIODO T13

ON

 T13.DESC_PERIODO=T12.CPERIODO_NEW

JOIN OSILBI.DIMENSIONES_BI T14

ON

 T14.CCARRERA           =T11.CCARRERA

AND NVL(T14.CARRERA_DG,0)=NVL(T11.CCARRERA_DG,0)

WHERE

 T12.GTIPO_PERIODO                          =1

AND T11.CPERSONA                             =T1.CPERSONA

AND T14.CGPROGRAMA                           =L3.COD_GRUPOPROGRAMA

AND T14.CPRODUCTO                            =L1.COD_ITEM

AND T11.CINGRESO                             =T1.CINGRESO

AND CONCAT(T13.ANIOINICIO,T13.ID_TIPOPERIODO)=CONCAT(L4.ANIOINICIO,

 L4.ID_TIPOPERIODO-1)

 )

 ,0)

 END AS FLAGMATPERANT,

 L4.ID_TIPOPERIODO,

 T1.NCREDITO_ACUM,

 CASE

WHEN T1.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA,

 T1.NCREDITO,

 TO_CHAR(SYSDATE,'DD/MM/YYYY') AS FECHA_PROCESO,

 CASE

WHEN T4.GFORMAINGRESO=8

THEN

 (

SELECT

 Z1.ID_MODALIDADINGRESO

FROM

 OSILDM.LK_MODALIDADINGRESO Z1

WHERE

 Z1.COD_TABLA             =5

AND Z1.COD_MODALIDADINGRESO=T4.GTIPOINGRESO

 )

ELSE L8.ID_MODALIDADINGRESO

 END AS DINAMICAINGRESO,

 L7.ID_ESTADO AS DINAMICASALIDA

FROM

 OSILBI.ALUMNO_PERIODO T1

JOIN OSILBI.DIMENSIONES_BI T2

ON

 T2.CCARRERA           =T1.CCARRERA

AND NVL(T2.CARRERA_DG,0)=NVL(T1.CCARRERA_DG,0)

AND CGPROGRAMA         <>4 --348819

JOIN OSILDM.LK_PRODUCTO L1

ON

 L1.COD_ITEM=T2.CPRODUCTO

JOIN OSILDM.LK_GRUPOPRODUCTO L2

ON

 L2.COD_ITEM=T2.GPRODUCTO

JOIN OSILDM.LK_GRUPOPROGRAMA L3

ON

 L3.COD_GRUPOPROGRAMA=T2.CGPROGRAMA

JOIN OSILBI.PERIODO T3

ON

 T3.CPERIODO=T1.CPERIODO

AND GVISIBLE =1 --347743

JOIN OSILDM.LK_PERIODO L4

ON

 L4.DESC_PERIODO     =T3.CPERIODO_NEW

AND NVL(L4.GPERIODO,0)=NVL(T3.GTIPO_PERIODO,0)

LEFT JOIN OSILDM.LK_SEDE L5

ON

 L5.COD_SEDE=T2.CSEDE

LEFT JOIN OSILDM.LK_CARRERADG L6

ON

 L6.COD_CARRERADG=NVL(T1.CCARRERA_DG,0)

LEFT JOIN OSILDM.LK_ESTADOALUMNO L7

ON

 L7.COD_ESTADO =T1.GESTADO

AND L7.COD_TABLA=8

JOIN OSILBI.ALUMNO T4

ON

 T4.CPROGRAMA =T1.CPROGRAMA

AND T4.CPERSONA=T1.CPERSONA

AND T4.CINGRESO=T1.CINGRESO

AND T4.CALUMNO =T1.CALUMNO --347502

LEFT JOIN OSILDM.LK_MODALIDADINGRESO L8

ON

 L8.COD_MODALIDADINGRESO=T4.GFORMAINGRESO

AND L8.COD_TABLA         =18

JOIN OSILDM.LK_INSTITUCION L10

ON

 L10.COD_INSTITUCION=T1.CINSTITUCION

JOIN OSILDM.LK_ALUMNO L9

ON

 L9.COD_PERSONA   =T4.CPERSONA

AND L9.COD_ALUMNO  =T4.CALUMNO

AND L9.COD_INGRESO =T4.CINGRESO

AND L9.COD_PROGRAMA=T1.CPROGRAMA

UNION ALL

SELECT

 L3.ID_INSTITUCION,

 L3.ID_GRUPOPROGRAMA,

 L2.ID_GRUPOPRODUCTO,

 L1.ID_PRODUCTO,

 L5.ID_SEDE,

 CASE

WHEN T4.GFORMAINGRESO=8

THEN

 (

SELECT

 Z1.ID_MODALIDADINGRESO

FROM

 OSILDM.LK_MODALIDADINGRESO Z1

WHERE

 Z1.COD_TABLA             =5

AND Z1.COD_MODALIDADINGRESO=T4.GTIPOINGRESO

 )

ELSE L8.ID_MODALIDADINGRESO

 END AS FORMAINGRESO,

 L7.ID_ESTADO,

 CASE

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 0 AND 45

THEN 1

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 46 AND 85

THEN 2

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 86 AND 125

THEN 3

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 126 AND 165

THEN 4

WHEN T1.CPROGRAMA    =1

AND T1.NCREDITO_ACUM >165

THEN 5

 END AS ANIOCURSO,

 CASE --CALCULA EL CICLO

 --PROGRAMA REGULAR

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 0 AND 20

THEN 1

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 21 AND 40

THEN 2

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 41 AND 60

THEN 3

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 61 AND 80

THEN 4

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 81 AND 100

THEN 5

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 101 AND 120

THEN 6

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 121 AND 140

THEN 7

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 141 AND 160

THEN 8

WHEN T1.CPROGRAMA=1

AND T1.NCREDITO_ACUM BETWEEN 161 AND 180

THEN 9

ELSE 10

 END AS CICLO,

 -- NVL(L6.ID_CARRERADG,0),

 L11.ID_PRODUCTO,

 L4.ID_PERIODO,

 L9.ID_ALUMNO,

 T1.NPONDERADO,

 T1.NACUMULADO,

 CASE

 --CALCULO SI EL ALUMNO SE MATRICULO EN EL PERIODO ANTERIOR

 ---PROGRAMA REGULAR

WHEN T1.CPROGRAMA    =1

AND L4.ID_TIPOPERIODO=1

THEN 0

WHEN T1.CPROGRAMA    =1

AND L4.ID_TIPOPERIODO=2

THEN NVL(

 (

SELECT

 CASE

WHEN T11.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA

FROM

 OSILBI.ALUMNO_PERIODO T11

JOIN OSILBI.PERIODO T12

ON

 T12.CPERIODO  =T11.CPERIODO

AND T12.GVISIBLE=1

JOIN OSILDM.LK_PERIODO T13

ON

 T13.DESC_PERIODO=T12.CPERIODO_NEW

JOIN OSILBI.DIMENSIONES_BI T14

ON

 T14.CCARRERA           =T11.CCARRERA_DG

AND NVL(T14.CARRERA_DG,0)=NVL(T11.CCARRERA,0)

WHERE

 T11.CPERSONA                               =T1.CPERSONA

AND T14.CGPROGRAMA                           =L3.COD_GRUPOPROGRAMA

AND T14.CCARRERA                             =L1.COD_ITEM

AND T11.CINGRESO                             =T1.CINGRESO

AND CONCAT(T13.ANIOINICIO,T13.ID_TIPOPERIODO)=CONCAT(L4.ANIOINICIO-1,

 L4.ID_TIPOPERIODO                                               +1)

 )

 ,0)

WHEN T1.CPROGRAMA    =1

AND L4.ID_TIPOPERIODO=3

THEN NVL(

 (

SELECT

 CASE

WHEN T11.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA

FROM

 OSILBI.ALUMNO_PERIODO T11

JOIN OSILBI.PERIODO T12

ON

 T12.CPERIODO  =T11.CPERIODO

AND T12.GVISIBLE=1

JOIN OSILDM.LK_PERIODO T13

ON

 T13.DESC_PERIODO=T12.CPERIODO_NEW

JOIN OSILBI.DIMENSIONES_BI T14

ON

 T14.CCARRERA           =T11.CCARRERA_DG

AND NVL(T14.CARRERA_DG,0)=NVL(T11.CCARRERA,0)

WHERE

 T11.CPERSONA                               =T1.CPERSONA

AND T14.CGPROGRAMA                           =L3.COD_GRUPOPROGRAMA

AND T14.CPRODUCTO                            =L1.COD_ITEM

AND T11.CINGRESO                             =T1.CINGRESO

AND CONCAT(T13.ANIOINICIO,T13.ID_TIPOPERIODO)=CONCAT(L4.ANIOINICIO,

 L4.ID_TIPOPERIODO-1)

 )

 ,0)

 END AS FLAGMATPERANT,

 L4.ID_TIPOPERIODO,

 T1.NCREDITO_ACUM,

 CASE

WHEN T1.GCONDICION=1

THEN 1

ELSE 0

 END AS MATRICULA,

 T1.NCREDITO,

 TO_CHAR(SYSDATE,'DD/MM/YYYY') AS FECHA_PROCESO,

 CASE

WHEN T4.GFORMAINGRESO=8

THEN

 (

SELECT

 Z1.ID_MODALIDADINGRESO

FROM

 OSILDM.LK_MODALIDADINGRESO Z1

WHERE

 Z1.COD_TABLA             =5

AND Z1.COD_MODALIDADINGRESO=T4.GTIPOINGRESO

 )

ELSE L8.ID_MODALIDADINGRESO

 END AS DINAMICAINGRESO,

 L7.ID_ESTADO AS DINAMICASALIDA

FROM

 OSILBI.ALUMNO_PERIODO T1

JOIN OSILBI.DIMENSIONES_BI T2

ON

 T2.CCARRERA           =T1.CCARRERA_DG

AND NVL(T2.CARRERA_DG,0)=NVL(T1.CCARRERA,0)

AND T2.CGPROGRAMA       =4

JOIN OSILDM.LK_PRODUCTO L1

ON

 L1.COD_ITEM=T2.CPRODUCTO

JOIN OSILDM.LK_GRUPOPRODUCTO L2

ON

 L2.COD_ITEM=T2.GPRODUCTO

JOIN OSILDM.LK_GRUPOPROGRAMA L3

ON

 L3.COD_GRUPOPROGRAMA=T2.CGPROGRAMA

JOIN OSILBI.PERIODO T3

ON

 T3.CPERIODO=T1.CPERIODO

AND GVISIBLE =1

JOIN OSILDM.LK_PERIODO L4

ON

 L4.DESC_PERIODO     =T3.CPERIODO_NEW

AND NVL(L4.GPERIODO,0)=NVL(T3.GTIPO_PERIODO,0)

LEFT JOIN OSILDM.LK_SEDE L5

ON

 L5.COD_SEDE=T2.CSEDE

JOIN OSILBI.DIMENSIONES_BI T9

ON

 T9.CCARRERA           =T1.CCARRERA

AND NVL(T9.CARRERA_DG,0)=NVL(T1.CCARRERA_DG,0)

AND T9.CGPROGRAMA       =3

JOIN OSILDM.LK_PRODUCTO L11

ON

 L11.COD_ITEM=T9.CPRODUCTO

LEFT JOIN OSILDM.LK_ESTADOALUMNO L7

ON

 L7.COD_ESTADO =T1.GESTADO

AND L7.COD_TABLA=8 --348 588

JOIN OSILBI.ALUMNO T4

ON

 T4.CPROGRAMA =T1.CPROGRAMA

AND T4.CPERSONA=T1.CPERSONA

AND T4.CINGRESO=T1.CINGRESO

AND T4.CALUMNO =T1.CALUMNO --348482

LEFT JOIN OSILDM.LK_MODALIDADINGRESO L8

ON

 L8.COD_MODALIDADINGRESO=T4.GFORMAINGRESO

AND L8.COD_TABLA         =18

JOIN OSILDM.LK_INSTITUCION L10

ON

 L10.COD_INSTITUCION=T1.CINSTITUCION

JOIN OSILDM.LK_ALUMNO L9

ON

 L9.COD_PERSONA   =T1.CPERSONA

AND L9.COD_ALUMNO  =T1.CALUMNO

AND L9.COD_INGRESO =T1.CINGRESO

AND L9.COD_PROGRAMA=T1.CPROGRAMA) L

    ON(I.ID_INSTITUCION = L.ID_INSTITUCION 

   AND I.ID_GRUPOPROGRAMA = L.ID_GRUPOPROGRAMA 

   AND I.ID_GRUPOPRODUCTO = L.ID_GRUPOPRODUCTO 

   AND I.ID_PRODUCTO = L.ID_PRODUCTO

   AND I.ID_SEDE = L.ID_SEDE

   AND I.ID_MODALIDADINGRESO = L.FORMAINGRESO

   AND I.ID_ANIOCURSO = L.ANIOCURSO

   AND I.CICLO   = L.CICLO

   AND I.ID_CARRERADG = L.ID_CARRERADG

   AND I.ID_PERIODO = L.ID_PERIODO

   AND I.ID_ALUMNO = L.ID_ALUMNO

   AND I.ID_TIPOPERIODO = L.ID_TIPOPERIODO)

  /*

  WHEN MATCHED THEN

  UPDATE

SET I.ID_ESTADO = L.ID_ESTADO

  ,I.PROMEDIOPERIODO = L.NPONDERADO

  ,I.PROMEDIOACUMULADO = L.NACUMULADO

  ,I.FLAGMATPERANT = L.FLAGMATPERANT

  ,I.CREDITOACUMULADO = L.NCREDITO_ACUM

  ,I.FLAGMATRICULA = L.MATRICULA

  ,I.CREDITOPERIODO = L.NCREDITO

  */

  WHEN NOT MATCHED THEN

INSERT(I.ID_INSTITUCION  ,I.ID_GRUPOPROGRAMA  ,I.ID_GRUPOPRODUCTO  ,I.ID_PRODUCTO  ,I.ID_SEDE  ,I.ID_MODALIDADINGRESO ,I.ID_ESTADO ,I.ID_ANIOCURSO  ,I.CICLO  ,I.ID_CARRERADG  ,I.ID_PERIODO  ,I.ID_ALUMNO  ,I.PROMEDIOPERIODO  ,I.PROMEDIOACUMULADO  ,I.FLAGMATPERANT    ,I.ID_TIPOPERIODO         ,I.CREDITOACUMULADO   ,I.FLAGMATRICULA  ,I.CREDITOPERIODO  ,I.FECHAPROCESO   ,I.DINAMICA_ENTRADA  ,I.DINAMICA_SALIDA)

VALUES(L.ID_INSTITUCION  ,L.ID_GRUPOPROGRAMA  ,L.ID_GRUPOPRODUCTO  ,L.ID_PRODUCTO  ,L.ID_SEDE  ,L.FORMAINGRESO        ,L.ID_ESTADO ,L.ANIOCURSO   ,L.CICLO  ,L.ID_CARRERADG  ,L.ID_PERIODO  ,L.ID_ALUMNO  ,L.NPONDERADO       ,L.NACUMULADO         ,L.FLAGMATPERANT    ,L.ID_TIPOPERIODO         ,L.NCREDITO_ACUM      ,L.MATRICULA      ,L.NCREDITO      ,L.FECHA_PROCESO  ,L.DINAMICAINGRESO   ,L.DINAMICASALIDA);

  COMMIT;

  

  

 

 

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET ID_SEDE = 0 WHERE ID_SEDE IS NULL; 

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET ID_MODALIDADINGRESO = 0 WHERE ID_MODALIDADINGRESO IS NULL; 

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET ID_ESTADO = 0 WHERE ID_ESTADO IS NULL ;

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET ID_ANIOCURSO = 0 WHERE ID_ANIOCURSO IS NULL ;

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET ID_TIPOEGRESADO = 0 WHERE ID_TIPOEGRESADO IS NULL; 

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET TIPOALUMNO = 0 WHERE TIPOALUMNO IS NULL ;

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET FLAGMATPERANT = 0 WHERE FLAGMATPERANT IS NULL;

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET ID_TIPOPERIODO = 0 WHERE ID_TIPOPERIODO IS NULL; 

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET FLAGCAMBIOCARRERA = 0 WHERE FLAGCAMBIOCARRERA IS NULL; 

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET DINAMICA_ENTRADA = 0 WHERE DINAMICA_ENTRADA IS NULL ;

  UPDATE MRIVERA.FACT_ALUMNOPERIODOPRUE SET DINAMICA_SALIDA = 0 WHERE DINAMICA_SALIDA IS NULL;

  

  COMMIT;

  

DELETE FROM MRIVERA.FACT_ALUMNOPERIODOPRUE 

WHERE ID_ALUMNO = 36944 AND ID_GRUPOPROGRAMA = 3 AND ID_PRODUCTO = 135 AND ID_ESTADO = 7 AND ID_PERIODO = 292;

    COMMIT;

  END;

  

  

 

 

  • Star
  • Star
  • Star
  • Star
  • Star