Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Como contar las filas de todas las tablas de la base de datos?
Enviado por anom07 el día 28 de enero de 2008
No se si se puede hacer en SQL, con una sentencia de este tipo:
ddd
Pero lo estoy intentando hacer con PL/SQL y tengo un error en la linea 1 cuando le digo la tabla:
DECLARE
filas VARCHAR2(64);
BEGIN
FOR tabla IN (SELECT table_name FROM user_tables where rownum<=20) LOOP
DBMS_OUTPUT.PUT_LINE(\'se va a hacer un count(0) de: \' || tabla.table_name);
select count(0) into filas from tabla.table_name;
end loop;
END;
Y no lo entiendo, porque cuando hago el output de \"se va a hacer count de x tabla\" la tabla aparece bien, aparecen 20 tablas correctas, pero al hacer el select count(0) into filas from tabla.table_name; me dice que tabla.table_name; no es una tabla o vista... como que no?
Re: Como contar las filas de todas las tablas de la base de datos?
Enviado por aerg el día 28 de enero de 2008
Soy yo mismo, ya he encontrao la solucion, es esta:
DECLARE
filas VARCHAR2(20);
BEGIN
FOR tabla IN (SELECT table_name FROM user_tables order by table_name) LOOP
execute immediate \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'select count(0) from \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' || tabla.table_name into filas;
IF filas > 0 then
DBMS_OUTPUT.PUT_LINE(tabla.table_name || \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' || filas);
end if;
end loop;