sql >> Database >  >> RDS >> Oracle

Hulp nodig bij het uitvoeren van een onmiddellijke update-query

Ik veronderstel dat col_id de primaire sleutel is. Dus in de updateverklaring

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

je werkt altijd maximaal één rij bij en dus de voorwaarde

SQL%ROWCOUNT > 1

is nooit waar ( 1 is niet> 1 )

Dus als je geen andere vastleggingsverklaring in je procedure hebt, zul je die updates nooit vastleggen.

Trouwens:wat is het doel hiervan

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

waarom bind je je niet gewoon aan het einde van je werk?



  1. WIDTH_BUCKET() Functie in Oracle

  2. Unicode-normalisatie in PostgreSQL 13

  3. MySQL-resultaten op IN-volgorde bestellen?

  4. Hoe kan ik de volledige definitie (sql) van systeemweergaven zoals user_objects krijgen?