Skip to Main Content

Español

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Varios UPDATE en un procedimiento

AlfonsoAlmonteJun 20 2020 — edited Jun 20 2020

Tengo este procedimiento y solo me ejecuta el primer update que esta despues del IF y obvia los demas. Por favor alguien me podria ayudar en que estoy fallando. Comente donde me sucede el inconveniente

DECLARE

   v_nombre_cliente VARCHAR2(100);

   v_rncTB VARCHAR2(40);

   v_codigo_clienteTB VARCHAR2(10);

   v_codigo_clienteTaveras VARCHAR2(10);

   v_numero_prestamo VARCHAR2(15);

   v_balance NUMBER(13,2);

   v_rncTaveras VARCHAR2(40);

   v_maxidprestamo venta.solicitud_prestamo.NUMERO_FACTURA%type;

  

CURSOR c_listaClientesTB

    IS

        SELECT c.nombre, c.rnc, c.cliente, t.numero_documento, SUM(t.balance) as balance

            FROM venta.transacciones_condicion_pago t

            JOIN venta.cliente c ON (c.cliente = t.cliente)

            WHERE c.compania = t.compania

            AND t.compania = 14

            AND t.zona = 7

            AND t.balance <> 0

            AND c.rnc = '001-1647917-1'

        GROUP BY c.nombre, c.rnc, c.cliente, t.numero_documento

        ORDER BY c.nombre, t.numero_documento;

   

CURSOR c_listaClientesTaveras

    IS

        SELECT rnc, cliente

            FROM venta.cliente

            WHERE compania = 1

            AND rnc = v_rncTB

            AND ruta_cobro = 3;

  

    BEGIN

        FOR prestamos_vigentes IN c_listaClientesTB

       

            LOOP

                v_nombre_cliente := prestamos_vigentes.nombre;

                v_rncTB := prestamos_vigentes.rnc;

                v_codigo_clienteTB := prestamos_vigentes.cliente;

                v_numero_prestamo := prestamos_vigentes.numero_documento;

                v_balance := prestamos_vigentes.balance;

               

                select max(NUMERO_FACTURA) into v_maxidprestamo

                from venta.solicitud_prestamo

                where compania = 1;

       

                v_maxidprestamo := v_maxidprestamo + 1;

               

                BEGIN

                    FOR rncTaveras IN c_listaClientesTaveras

                        LOOP

                            v_rncTaveras := rncTaveras.rnc;

                            v_codigo_clienteTaveras := rncTaveras.cliente;

                                IF (v_rncTaveras = v_rncTB) THEN

                                 ---Solo ejecuta este update---

                                update venta.solicitud_prestamo

                                    set compania = 1, zona = 3, numero_solicitud = v_codigo_clienteTaveras, numero_factura = v_maxidprestamo

                                    where COMPANIA = 14

                                    AND CEDULA_SOLICITANTE = v_rncTB

                                    and numero_factura = v_numero_prestamo;

                              ---No ejecuta los update a partir desde aqui---

                                update venta.transacciones_condicion_pago

                                    set compania = 1, zona = 3, cliente = v_codigo_clienteTaveras, numero_documento = v_maxidprestamo

                                    where COMPANIA = 14

                                    AND NUMERO_DOCUMENTO IN (v_numero_prestamo)

                                    AND cliente = v_codigo_clienteTaveras;

  

                                update rebo.recibos_ingresos

                                    set compania = 1, zona = 3, codigo = v_codigo_clienteTaveras, NO_PRESTAMO = v_maxidprestamo

                                    where COMPANIA = 14

                                    AND NO_PRESTAMO = v_numero_prestamo

                                    AND codigo = v_codigo_clienteTaveras;

                                update rebo.comentarios

                                    set compania = 1, documento = v_maxidprestamo, cuenta = v_codigo_clienteTaveras

                                    where COMPANIA = 14

                                    AND documento = v_numero_prestamo

                                    AND cuenta = v_codigo_clienteTaveras;

                                    dbms_output.put_line(v_nombre_cliente ||' - '|| v_numero_prestamo ||' - '|| v_maxidprestamo ||' - '|| v_codigo_clienteTaveras ||' - '|| v_codigo_clienteTB ||' - '||v_rncTB );

                                END IF;

                        END LOOP;

                END;

            END LOOP;

    END;

Comments

Processing

Post Details

Added on Jun 20 2020
4 comments
4,125 views