Je boucle pour toutes les tables dans db:tables en boucle pl/sql et le numéro d'affichage des lignes
declare
V_TABL_NM ALL_TABLES.TABLE_NAME%TYPE;
BEGIN
FOR GET_TABL_LIST IN (SELECT TABLE_NAME FROM ALL_TABLES)LOOP
V_TABL_NM := GET_TABL_LIST.TABLE_NAME;
DBMS_OUTPUT.PUT_LINE(V_TABL_NM);
END LOOP;
END;
Comment puis-je trier mes résultats et ajouter nombre d'enregistrements pour chaque table? J'essaie ci-dessous, mais il ne fonctionne pas:
declare
V_TABL_NM ALL_TABLES.TABLE_NAME%TYPE;
table_row number;
BEGIN
FOR GET_TABL_LIST IN (SELECT TABLE_NAME FROM ALL_TABLES)LOOP
V_TABL_NM := GET_TABL_LIST.TABLE_NAME;
table_row: = select count(*) from TABLE_NAME;
DBMS_OUTPUT.PUT_LINE(V_TABL_NM, table_row);
END LOOP;
END;
Il est toujours préférable d'utiliser PROPRIÉTAIRE tout en obtenant le nombre de la table si vous utilisez ALL_TABLES. Aussi, si les statistiques sont fraîches alors vous pouvez obtenir le nombre d'enregistrements de la colonne NUM_ROWS dans ALL_TABLES – hemalp108
Avez-vous besoin des chiffres exacts ou une valeur approximative? Si vous avez des tables significativement grandes, le script pourrait prendre beaucoup de temps à s'exécuter, ce qui pourrait être considérablement réduit si vous utilisez une clause 'sample'. –