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.