Je veux utiliser DBMS_OUTPUT.PUT_LINE
, mais le nombre de lignes est supérieur à 1. Il n'y a rien dans la table qui incrémente séquentiellement, donc je ne peux pas utiliser une boucle. Est-il possible d'imprimer chaque ligne de la table?comment imprimer la table entière en utilisant le bloc anonyme dans pl sql?
Répondre
essayez avec quelque chose comme ceci.
SET SERVEROUTPUT ON
BEGIN
-- A PL/SQL cursor
FOR cursor1 IN (SELECT * FROM table1)
LOOP
DBMS_OUTPUT.PUT_LINE('Column 1 = ' || cursor1.column1 ||
', Column 2 = ' || cursor1.column2);
END LOOP;
END;
/
La façon rapide et le plus sale de le faire est en réalité par le biais de SQL * Plus:
SQL> set lines 200
SQL> set heading off
SQL> set feedback off
SQL> spool $HOME/your_table.out
SQL> select * from your_table;
SQL> spool off
SQL * Plus a une nette si la fonctionnalité de rapports de base; nous pouvons même generate HTML files.
Si vous avez une très longue table (beaucoup de lignes) ou une grande table (plusieurs colonnes), vous feriez mieux de sortir directement dans un fichier, comme ceci.
declare
fh utl_file.file_type;
begin
fh := utl_file.fopen('TARGET_DIRECTORY', 'your_table.lst', 'W');
for lrec in (select * from your_table)
loop
utl_file.put(fh, id);
utl_file.put(fh, '::');
utl_file.put(fh, col_1);
utl_file.put(fh, '::');
utl_file.put(fh, col_2);
utl_file.put(fh, '::');
utl_file.put(fh, to_char (col_3, 'dd-mm-yyyy hh24:mi:ss'));
utl_file.new_line(fh);
end loop;
utl_file.fclose(fh);
end;
/
Cela peut ressembler à une corvée, mais le PUT() les appels peuvent être générés à partir USER_TAB_COLUMNS. Il y a quelques getchas avec UTL_FILE donc read the documentation.
Vous pourrait utiliser la même structure de contrôle avec DBMS_OUTPUT ....
begin
for lrec in (select * from your_table)
loop
dbms_output.put(id);
dbms_output.put('::');
dbms_output.put(col_1);
dbms_output.put('::');
dbms_output.put(col_2);
dbms_output.put('::');
dbms_output.put(to_char (col_3, 'dd-mm-yyyy hh24:mi:ss'));
dbms_output.new_line;
end loop;
end;
/
... mais si vous allez à la bobine à partir d'un SQL * Plus, pourquoi ne pas utiliser l'option plus facile?
Cela peut aider:
BEGIN
FOR MY_CURSOR IN (SELECT COLUMN1,COLUMN2,COLUMN3 FROM MY_TABLE)
LOOP
DBMS_OUTPUT.PUT_LINE('COLUMN1 = ' || MY_CURSOR.COLUMN1 ||',
COLUMN2 = ' || MY_CURSOR.COLUMN2 ||',
COLUMN3 = ' || MY_CURSOR.COLUMN3);
END LOOP;
END;
- 1. Oracle PL/SQL: Comment imprimer un type de table
- 2. Comment insérer en bloc des données du curseur ref dans une table temporaire en PL/SQL
- 3. Comment imprimer chaque élément d'un ARRAY en PL/SQL?
- 4. problème PL/bloc SQL: Aucune donnée trouvée
- 5. Comment renvoyer un ensemble de résultats/curseur à partir d'un bloc anonyme Oracle PL/SQL qui exécute Dynamic SQL?
- 6. création de table en pl/sql
- 7. Comment imprimer une liste entière en F #?
- 8. Pl/SQL: Comment trier une table d'enregistrements?
- 9. Puis-je retourner des valeurs à PHP à partir d'un bloc PL/SQL anonyme?
- 10. Variables de table dans Oracle PL/SQL?
- 11. Comment créer une table avec un nombre aléatoire de champs dans Oracle en utilisant PL/SQL?
- 12. PL/SQL - Travailler avec une chaîne!
- 13. Comment Résumer en PL/SQL
- 14. Valeur-clé PL/SQL Chaîne utilisant Regex
- 15. en utilisant la fonction au lieu de CREATE pl/sql
- 16. ORACLE PL/SQL - SCHEDULE CREATE TABLE
- 17. Variables dans PL/SQL
- 18. en utilisant pl/sql comment puis-je ouvrir un répertoire?
- 19. C# Regex pour obtenir le bloc de commentaires sur le code pl/sql
- 20. Parallélisme dans PL/SQL
- 21. En XSL comment faire un bloc occuper une page entière?
- 22. en utilisant le bloc d'énumération
- 23. Comment imprimer une table en python?
- 24. En utilisant% TYPE sur un champ d'enregistrement en PL/SQL
- 25. Imprimer le contenu du super bloc
- 26. Comment fonctionne contains() dans PL-SQL?
- 27. Comment sélectionner une colonne entière en mode bloc visuel?
- 28. Analyseur PL/SQL pour identifier l'opération sur la table
- 29. pl sql et sql dynamique
- 30. comment insérer une valeur entière d'une table Grid à Sql?
comment puis-je augmenter au curseur de se déplacer à la ligne suivante? – n0ob
Vous n'avez pas besoin de - un curseur implicite comme celui ci-dessus récupère automatiquement la ligne suivante et se ferme quand il n'y a plus de lignes à récupérer. –