Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2007, 09h35   #1
Invité de passage
 
Inscription : juillet 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 3
Points : 0
Points : 0
Par défaut Unload fichier texte

Bonjour,

Je voulais avoir votre avis sur la situation suivante :

Je dois faire un unload sélectif à partir d'Oracle vers un fichier texte (avec séparateurs). Quel est le moyen le plus simple et le plus efficace pour ce faire ?

Merci d'avance.
Baygon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 09h42   #2
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Bonjour,

Un spool est le plus rapide.
Vous pouvez aussi utiliser le package utl_file (mais qui necessite quelques paramétrage d'oracle).

Voilou
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 10h06   #3
Invité de passage
 
Inscription : juillet 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 3
Points : 0
Points : 0
Citation:
Envoyé par kalyparker
Bonjour,

Un spool est le plus rapide.
Vous pouvez aussi utiliser le package utl_file (mais qui necessite quelques paramétrage d'oracle).

Voilou
Un spool ? Je ne connais pas ... Le package en question n'est pas installé par défaut je suppose ? Peux-tu m'en dire un peu plus au sujet du spool ? Merci.
Baygon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 10h15   #4
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Merci de faire un minimum d'effort de recherche sur ce forum :
http://www.developpez.net/forums/sho...ighlight=spool
http://www.developpez.net/forums/sho...ighlight=spool
http://www.developpez.net/forums/sho...ighlight=spool
...
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 14h10   #5
Invité de passage
 
Inscription : juillet 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 3
Points : 0
Points : 0
Merci ! Je viens de faire un petit tour par tous ce liens mais l'opération ne semble pas simple du tout par l'option PL-SQL. Et le spool ne me semble pas tout à fait adéquat pour créer un fichier texte de tous les champs séparés par une "|" ou un ";" par exemple. Tout à fait étonnant qu'une db comme Oracle ne possède pas une bête et simple commande "UNLOAD" ??!!! Ou alors je n'ai pas encore très bien cherché ..
Baygon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 14h29   #6
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Bah, ce n'est quand même pas très compliqué :
Code :
1
2
3
4
5
spool monfichier
SELECT col1 || ';' || col2 || ... || ';' || coln
FROM maTable
WHERE ...
spool off
Au pire il y a quelques options à adapter.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 14h48   #7
Membre régulier
 
Inscription : mars 2006
Messages : 88
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 88
Points : 79
Points : 79
ou bien faire un truc du style :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
-- variables locales
 
 
     hfile           UTL_FILE.file_type;
 
     ma_variable  VARCHAR2(256);
 
BEGIN
 
-- Debut de traitement 
 
 
 
-- ouvrir le fichier en creation
 
      hfile := SYS.UTL_FILE.fopen (p_dirname, p_filename, 'w');
 
      FOR c_cur IN ( SELECT v1, v2 FROM my_table)
      LOOP 
 
            SYS.UTL_FILE.put_line (hfile,  v1 || ';' || v2 );
 
      END LOOP;
 
-- Fermer le fichier. 
      SYS.UTL_FILE.fclose (hfile);
Rien de bien sorcier et UTL_FILE est fourni en standard par ORACLE.

NicK.
Nick_Holmes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 15h06   #8
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Tout à fait d'accord.
La seule différence entre le spool et utl_file, c'est qu'avec utl le fichier généré est obligatoirement sur le serveur oracle. avec le spool on le place ou on veux.

Même moi j'y arrive
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h16.


 
 
 
 
Partenaires

Hébergement Web