Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour 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 04/03/2008, 14h26   #1
Invité de passage
 
Inscription : juin 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 26
Points : 3
Points : 3
Par défaut Problème avec export de résultats dans un fichier et paramètre d'entrée

Bonjour,

Pour mon taff j'ai un petit job à faire sous en SQL (BDD Oracle)

Je dois faire une requête sur une table avec certaines conditions, mettre en forme le résultat (je vais expliquer après ce que j'entends par mettre en forme le résultat) et exporter le tout dans un fichier.

Quand je dis "mettre en forme le résultat", je parle de "formatter le resultat de la requête en concaténant des choses avant et après"

En gros, si ma requête était:

Select NOM, VOITURE, COULEUR from MA_TABLE where NOM='TOTO'

Elle renverrait
TOTO, PIGEOT, ROUGE

Et moi je veux le résultat: La voiture de TOTO est une PIGEOT ROUGE.

Ma requête ressemble donc à ça:

Select 'La voiture de '||NOM,||' est une ' ||VOITURE, COULEUR from MA_TABLE where NOM='TOTO'

(A peu de choses près)

Et j'ai en sortie

La voiture de TOTO est une PIGEOT ROUGE.

Jusque là, ça va.

POur exporter le résultat dans un fichier, en suivant une méthode que j'avais trouvée je ne sais plus où, je colle juste avant ma requête

SET LINESIZE 1000;
SET HEADING OFF;
SET ECHO OFF;
SET FEEDBACK OFF;
SPOOL C:\MON_REPERTOIRE\LE_RESULTAT_DE_MA_REQUÊTE.txt;


Et un petit SPOOL OFF juste après.

Encore une fois, victoire, j'ai un beau fichier texte avec écrit dedans
La voiture de TOTO est une PIGEOT ROUGE


Sauf que bien sur, pour mon taff, il y a beaucoup plus de champs renvoyé par la requête, qui est elle aussi bien plus balèze.
Mais en gros, imaginez que je veux pas savoir ce qu'a TOTO, mais plutot ce qu'a ROBERT... Vous allez me dire "Remplace TOTO par ROBERT dans ta requête"...
Certes mais dans le cas du taff que j'ai à faire, c'est trop ch**** à faire

Donc j'ai mis au début de ma requête

DEFINE NAME = TOTO (ou ROBERT ou ce que vous voulez), et je remplace mon WHERE NAME = TOTO par WHERE NAME = &NAME

ET effectivement, ça marche bien.

Sauf !

Sauf que dans mon fichier texte qui reçoit le résultat de ma requête, j'ai bien
La voiture de TOTO est un PIGEOT ROUGE, mais juste avant ça, j'ai


old: Select 'La voiture de '||NOM,||' est une ' ||VOITURE, COULEUR from MA_TABLE where NOM='TOTO'
new: Select 'La voiture de '||NOM,||' est une ' ||VOITURE, COULEUR from MA_TABLE where NOM='$NAME'


Ca c'est quand je bosse sous Toad.
Si je lance ma requête avec SQL+, ça me change un peu la tête du début du fichier.

SQL> 1 Select 'La voiture de '||NOM,||' est une ' ||VOITURE, COULEUR from MA_TABLE where NOM='&NAME'
ancien 1: &NAME
nouveau 1: TOTO


Suivi du résultat de ma requête....



Mais le problème reste le même: J'ai un paquet d'info en entête de mon fichier de résultat dont je me fiche éperduement et que j'aimerais voir disparaitre.

Quelqu'un a une idée ?
KuBi4K est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 16h59   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 320
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 320
Points : 5 839
Points : 5 839
Voila
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2008, 00h48   #3
Invité de passage
 
Inscription : juin 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 26
Points : 3
Points : 3
Bon, après une réponse claire donnée par une autre personne, autre qu'un RTFM vachement utile, il s'agit de la commande VERIFY

SET VERIFY OFF et hop, plus de blabla inutile.
KuBi4K est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2008, 08h20   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par KuBi4K Voir le message
autre qu'un RTFM vachement utile
rien de plus utile que la doc que tu aurais du consulter en 1° lieu et une recherche sur le forum qui t'aurais permis de trouver la réponse seule avec un peu d'initiative
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2008, 11h40   #5
Invité de passage
 
Inscription : juin 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 26
Points : 3
Points : 3
Citation:
Envoyé par orafrance Voir le message
rien de plus utile que la doc que tu aurais du consulter en 1° lieu et une recherche sur le forum qui t'aurais permis de trouver la réponse seule avec un peu d'initiative

Tout à fait.

Mais la, je ne savais même pas ce que je cherchais.
Je ne savais pas où chercher.
Donc le principe de lire une doc quasi entière pour trouver une info inconnue, sans critère de recherche solide, bof.

Alors que cette info m'a été donnée au final au bout de 30 sec montre en main avec mon autre interlocuteur.

D'où mon idée que la réponse "Lis le pavé là" était pas des masses appropriée.

Enfin bon, merci quand même
KuBi4K est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2008, 11h44   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Dans le lien donné, tu as : Formatting SQL*Plus Reports et Creating a Flat File
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h31.


 
 
 
 
Partenaires

Hébergement Web