sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Variable que contiene el número de filas afectadas por el DELETE anterior? (en una función)

En Oracle PL/SQL, la variable del sistema para almacenar el número de filas eliminadas/insertadas/actualizadas es:

SQL%ROWCOUNT

Después de una instrucción DELETE / INSERT / UPDATE, y ANTES DE COMPROMETER, puede almacenar SQL%ROWCOUNT en una variable de tipo NÚMERO. Recuerda que COMMIT o ROLLBACK ponen a CERO el valor de SQL%ROWCOUNT, por lo que tienes que copiar el valor de SQL%ROWCOUNT en una variable ANTES DE COMMIT o ROLLBACK.

Ejemplo:

BEGIN
   DECLARE
      affected_rows   NUMBER DEFAULT 0;
   BEGIN
      DELETE FROM feeds_item
            WHERE shareurl = re1;

      affected_rows := SQL%ROWCOUNT;
      DBMS_OUTPUT.
       put_line (
            'This DELETE would affect '
         || affected_rows
         || ' records in FEEDS_ITEM table.');
      ROLLBACK;
   END;
END;

También encontré esta SOLUCIÓN interesante (fuente:http://markmail.org/message/grqap2pncqd6w3sp )