Saltar al contenido

Número de filas afectadas por una ACTUALIZACIÓN en PL/SQL

Después de de nuestra prolongada compilación de datos hemos podido resolver este enigma que suelen tener muchos los usuarios. Te dejamos la solución y deseamos servirte de mucha ayuda.

Solución:

usas el sql%rowcount variable.

Debe llamarlo inmediatamente después de la declaración para la que necesita encontrar el recuento de filas afectadas.

Por ejemplo:

set serveroutput ON; 
DECLARE 
    i NUMBER; 
BEGIN 
    UPDATE employees 
    SET    status = 'fired' 
    WHERE  name LIKE '%Bloggs'; 
    i := SQL%rowcount; 
    --note that assignment has to precede COMMIT
    COMMIT; 
    dbms_output.Put_line(i); 
END; 

Para aquellos que quieren los resultados de un comando simple, la solución podría ser:

begin
  DBMS_OUTPUT.PUT_LINE(TO_Char(SQL%ROWCOUNT)||' rows affected.');
end;

El problema básico es que SQL%ROWCOUNT es una variable (o función) PL/SQL y no se puede acceder directamente desde un comando SQL. Esto se puede lograr mediante el uso de un bloque PL/SQL sin nombre.

… Si alguien tiene una solución para usarlo en un comando SELECCIONAR, estaría interesado.

alternativamente, SQL%ROWCOUNT
puede usar esto dentro del procedimiento sin necesidad de declarar una variable

Finalizando este artículo puedes encontrar las observaciones de otros administradores, tú incluso puedes mostrar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *