sql >> Base de Datos >  >> RDS >> Oracle

Necesito ayuda para ejecutar una consulta de actualización inmediata

Supongo que col_id es la clave principal. Así que en la declaración de actualización

EXECUTE IMMEDIATE 'UPDATE  ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2'
          USING l_vc_CountryCode, l_vc_ColId;

siempre está actualizando como máximo una fila y, por lo tanto, la condición

SQL%ROWCOUNT > 1

nunca es cierto ( 1 no es> 1 )

Entonces, si no tiene ninguna otra declaración de confirmación en su procedimiento, nunca confirmará esas actualizaciones.

Por cierto:cuál es el propósito de esto

if SQL%ROWCOUNT > 1 THEN
          inserts := inserts + 1;
          counter := counter + 1;
          IF counter > 500 THEN
            counter := 0;
            COMMIT;
          END IF;
        END IF;

¿Por qué no te comprometes al final de tu trabajo?