SET SQLBLANKLINES ON;

/
-- Query para actualizar las cuentas con id_solicitante a null
DECLARE
    CURSOR CSOL IS 
        SELECT S.ID_SOLICITANTE_01, S.ID_CUENTA_01, S.F_ALTA_01, C.ID_CUENTA_05, C.ID_SOLICITANTE_05, C.F_ALTA_05, C.USU_ALTA_05
    FROM AD74A01T00 S INNER JOIN AD74A05T00 C ON (S.ID_CUENTA_01 = C.ID_CUENTA_05)
    WHERE C.ID_SOLICITANTE_05 IS NULL AND C.F_HISTORICO_05 IS NULL;
    
    wCont NUMBER := 0;
    wContF NUMBER := 0;
    wContU NUMBER := 0;
	
BEGIN
    FOR SOL IN CSOL LOOP
        --DBMS_OUTPUT.PUT_LINE('UPDATE AD74A05T00 SET ID_SOLICITANTE_05 = ' || SOL.ID_SOLICITANTE_01 || ' WHERE ID_CUENTA_05 = ' || SOL.ID_CUENTA_01 || ';');
        UPDATE AD74A05T00 SET ID_SOLICITANTE_05 = SOL.ID_SOLICITANTE_01 WHERE ID_CUENTA_05 = SOL.ID_CUENTA_01;
        wCont := wCont+1;
        -- Comprobar si la fecha de alta y el usuario sin null para meter la de alta del solicitante
        IF SOL.F_ALTA_05 IS NULL THEN
            --DBMS_OUTPUT.PUT_LINE('UPDATE AD74A05T00 SET F_ALTA_05 = ''' || SOL.F_ALTA_01 || ''' WHERE ID_CUENTA_05 = ' || SOL.ID_CUENTA_01 || ';');
            UPDATE AD74A05T00 SET F_ALTA_05 = SOL.F_ALTA_01 WHERE ID_CUENTA_05 = SOL.ID_CUENTA_01;
            wContF := wContF+1;
        END IF;
        IF SOL.USU_ALTA_05 IS NULL THEN            
            --DBMS_OUTPUT.PUT_LINE('UPDATE AD74A05T00 SET USU_ALTA_05 = ''AD74A''' || ' WHERE ID_CUENTA_05 = ' || SOL.ID_CUENTA_01 || ';');
            UPDATE AD74A05T00 SET USU_ALTA_05 = 'AD74A' WHERE ID_CUENTA_05 = SOL.ID_CUENTA_01;
            wContU := wContU+1;
        END IF;
    END LOOP;
    COMMIT;
	
    DBMS_OUTPUT.PUT_LINE('TOTALES - actualizado solicitante: ' || wCont || ', fecha alta: ' || wContF || ', usuario alta: ' || wContU);
END;
/