qu'est ce qui est le mieux à utiliser et c'est quoi la grande difference ?
qu'est ce qui est le mieux à utiliser et c'est quoi la grande difference ?
En simplifiant :
- utl_file génère un fichier sur le serveur de base de données
Pour plus d'informations sur utl_file :
http://sheikyerbouti.developpez.com/...?page=Chap8#L8
- spool permet de générer un fichier sur le poste d'où est exécute le script (ou la requête)
De plus spool est une instruction SQL*Plus et ne peut pas exécuté dans un bloc PL/SQL.
Suivant le contexte, l'un ou l'autre est plus adapté. Mais il est difficile de dire comme cela lequel est mieux que l'autre.
comme l'a dis plaineR, tout dépend de ce que l'on veut faire, cependant, en plus de la différence mentionnée, il faut savoir qu'à l'aide UTL_FILE, on a plus de libérté par rapport à l'export des données. par exemple, on peut décider nous même du format des données de sorties (avec quel type de délimiteur, doit on ajouter du texte ... ), alors qu'avec spool, on a largement moins de controle sur la sortie.
Spool reste comme même efficace pour ce qui est de la génération des rapports instantannées, a conditions de bien s'y connaitre en sql*plus![]()
AEMAG
Bonjour,
Pour completer ce qu'à dit plaineR à propos du spool :
Effectivement, un spool ne peux pas s'exécuter dans un bloc pl, mais il peut très bien l'encadrer. Et les donnees peuvent être enregistrer dans le fichier de sortie grace au package DBMS_OUTPUT.
Voili, voilou
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
mais attention, DBMS_OUTPUT est limité en nombre de caractères affichés![]()
Avec la 10g R2, le buffer de DBMS_OUTPUT est maintenant illimité: http://download-uk.oracle.com/docs/c....htm#sthref147
Ca m'interresse beaucoupEnvoyé par kalyparker
![]()
(j'ai un client 8.17 sur windows et j'attaque une base 9.2.0.6)
Quelqu'un peut donner un exemple ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 set serveroutput on spool fichier DECLARE <code> BEGIN <code> DBMS_OUTPUT.PUT_FILE ... END; / spool off
Attention dans ces versions les dbms_output sont limités à 1000000 de caractères et 255 caractères par ligne.Envoyé par meuledor
Partager