Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Precisa de ajuda para executar a consulta de atualização imediata


Suponho que col_id é a chave primária. Então, na declaração de atualização
EXECUTE IMMEDIATE 'UPDATE  ' || dest || ' SET COUNTRY_CODE = :v1 WHERE col_id = :v2'
          USING l_vc_CountryCode, l_vc_ColId;

você está sempre atualizando no máximo uma linha e, portanto, a condição
SQL%ROWCOUNT > 1

nunca é verdade ( 1 não é> 1 )

Portanto, se você não tiver nenhuma outra declaração de confirmação em seu procedimento, nunca fará o commit dessas atualizações.

A propósito:qual é o objetivo deste
if SQL%ROWCOUNT > 1 THEN
          inserts := inserts + 1;
          counter := counter + 1;
          IF counter > 500 THEN
            counter := 0;
            COMMIT;
          END IF;
        END IF;

por que você não se compromete no final do seu trabalho?