Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Benötigen Sie Hilfe bei der Ausführung einer sofortigen Aktualisierungsabfrage

Ich nehme an, dass col_id der Primärschlüssel ist. Also in der Update-Anweisung

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

Sie aktualisieren immer höchstens eine Zeile und damit die Bedingung

SQL%ROWCOUNT > 1

ist nie wahr ( 1 ist nicht> 1 )

Wenn Sie also keine andere Commit-Anweisung in Ihrer Prozedur haben, werden Sie diese Aktualisierungen niemals committen.

Übrigens:was soll das

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

warum bestätigst du dich nicht einfach am Ende deiner Arbeit?