sqlplus: pb format colonne dans un fichier texte issu d'une requête - SQL/NoSQL - Programmation
Marsh Posté le 29-08-2007 à 09:00:41
j'avais besoin un jour d'exporter dans un fichier texte, et avec le peu de pl/sql que j'avais fait dans ma vie, j'avais utilisé UTL_FILE car plus simple pour le formattage de données
par contre il faut activé le paramètre UTL_FILE_DIR dans le fichier d'init, et généralement les DBAs n'aiment pas trop ca
Marsh Posté le 29-08-2007 à 10:38:22
merci pour ta réponse couak.
effectivement c'est une solution, mais j'aimerais bien utiliser spool, d'autant qu'il n'y a que cette histoire de format qui pose problème, sinon tout est ok.
quelqu'un a une idée ... ?
Marsh Posté le 29-08-2007 à 14:19:01
Code :
|
Marsh Posté le 30-08-2007 à 17:08:13
merci MagicBuzz.
oui je connais cette syntaxe aussi, je n'ai pas encore essayé mais a priori c'est la même chose que d'utiliser COLSEP (séparateur de colonne), sauf qu'on mets les séparateurs à la main ...
je vais essayer au cas où mais je ne pense pas que ça change grand chose.
je viens de voir que la taille par défaut d'une colonne est la taille du champ, j'ai comme l'impression qu'il n'est pas possible d'éliminer ces maudits blancs ! à moins qu'il y est une option de la commande "column format" qui permette de le faire, mais pour l'instant je trouve pas ...
je me suis dépanné avec toad, mais pour une extraction quotidienne, va falloir trouver autre chose ...
au fait, je réalise que je n'ai pas mis la requete, la voilà :
Code :
|
Marsh Posté le 30-08-2007 à 19:51:55
Non, l'intérêt de faire des concaténations, c'est contrairement à COLSEP (du moins il me semble) c'est qu'il ne va pas te coller de blancs inutiles autour des valeurs afin de faire un joli fichier formatté.
Donc, vu que tes "SIGxxx" tu vas systématiquement avoir la valeur suivie d'un certain nombre d'espaces afin d'avoir exactement 12 caractères (puisque les SIGxxx sont définis comme VARCHAR2(12)).
Alors qu'avec des concaténations, tu vas par exemple avoir (pour les 2 premières colonnes) :
|
PS : Tiens, toi aussi tu bosses avec Générix ?
Marsh Posté le 31-08-2007 à 14:24:39
ça marche ! merci MagicBuzz.
ouais c'est du generix. à propos ça marche bien chez toi ? parce que nous on est en phase de recette depuis un bon moment, et y a pas mal de soucis ...
Marsh Posté le 31-08-2007 à 15:57:36
Ca dépend de ce que t'appelle des soucis
Ici, on est passé de la 4.4 à la 5.2
Bah... C'st effarant le nombre de régressions qu'on a subit. Faut dire qu'ils se sont planté en gravant le CD des binaires, et on a eu une version en cours de dev non testée à la place de la version release
Mais bon, maintenant c'est relativement stable. Il nous reste cependant quelques bugs à la con, et le support semble avoir bien du mal à les corriger
Genre, évitez d'utiliser le PPE "RECORI" (sur AREC) parcequ'il est buggé jusqu'à la moelle Ca fait depuis octobre dernier qu'on met en prod différentes versions du binaire, et depuis cet époque qu'on ne peut pas s'en servir correctement (même si maintenant il ne reste plus que des bugs mineurs).
C'est bien domage tout ça. En soit, Générix est un excellent programme, bourré d'excellentes idées, et très souple d'un point de vue paramétrage. Seul truc, c'est qu'entre ce que dit la doc et ce que font réellement les binaires, des fois on a des surprises
Par contre, niveau modèles de données, moi je kiffe à 100%, même si personnellement je serais allé bien plus loin dans certains domaines.
Marsh Posté le 01-09-2007 à 21:47:42
nous on a aussi ce genre de problèmes (mauvais écrans ou exe), mais y en a + ... et les gens de chez generix qui travaillent pour nous ont un peu du mal à les corriger comme chez toi ...
sinon je trouve l'ergonomie plus que moyenne, limite 19ème siècle ... avec parfois des logiques différentes d'un écran à un autre, les doubles confirmations sur les boutons enfoncés, etc ...
on a aussi des problèmes de blocages de files batch (qui semblent être résolus depuis quelques temps, mais ça a duré un moment !)
pour ce qui est du modèle de données, je ne suis pas encore en mesure d'apprécier, je suis surtout admin système/réseau et exploit, je suis un dba de fortune mais des formations sont à venir ...
merci encore.
Marsh Posté le 03-09-2007 à 09:36:09
Ah ben l'ergonomie et Générix, c'est une histoire qui a commencé au 20° sciècle avant JC et qui a terminé au bout d'une heure. Depuis, ça n'a pas évolué d'un kopek
En fait, la version telnet est bien plus ergonomique. Et la GUI "client lourd" n'est qu'une simple surcharge de cette dernière. C'est pour cette raison que l'ergonomie est un peu à chier en client/serveur. Le coup de la double confirmation, c'est vrai que c'est chiant au début, mais quand on a l'habitude des raccourcis claviers c'est bien pratique :
F11 : annuler. on ne clique qu'une fois.
F10 : valider. on clique deux fois.
l'intérêt de double-valider, c'est que si par inadvertance on appuie sur F10 au lieu de F11, on s'en rend compte tout de suite, car on reste bloqué sur l'écran, et on peut encore annuler. en revanche, quand on a l'habitude, on fait systématiquement F10-F10, donc la double confirmation ne pose pas de problème.
par contre, ce qui est très chiant, c'est par exemple dans l'écran gcov_1 : tu es sur "tiers". tu veux saisir un numéro de commande, tu fais "tab". pof, ça te lance une recherche sur les tiers (m'enfin !). du coup, faut un clic souris pour accéder à numeve.
par contre, si tu fais "f5" sur un champ (recherche), tu ne peux pas passer d'un champ à l'autre par click, ça t'affiche une liste et tab fait rien ! il faut faire "entrée"
si ça c'est pas du relourdage ++
pour le reste, EGX (enfin, GCE) est là pour nous permettre de faire notre propre ergonomie. j'ai fait une formation l'an dernier sur le framework. je dois dire que comme d'hab, les idées sont génialissimes. mais la mise en oeuvre... j'aurai pu faire mieux y'a 5 ans je pense.
résultat on a un concept génial, mais une implémentation très lourde et assez bourrée de bugs. le seul truc qui tiens un peut la route, c'est XDME, qui a été codé par un stagiaire
pis les templates livrés par défaut bah... l'ergonomie est à chier mais c'est pas une surprise
Marsh Posté le 28-08-2007 à 21:42:28
bonjour,
comme le titre l'indique, j'ai un problème pour mettre en forme les champs d'une requête sql exportée vers un fichier texte sous sqlplus (spool <fichier>, pagesize <x>, linesize <x>, colsep '|', etc ...)
j'utilise donc le '|' comme séparateur, mais les champs apparaissent comme formatés, du style :
L066001 |E066001 | 1254.36|etc
L067001 |E067001 | 255.12|etc
j'aimerais bien avoir quelque chose plutôt comme ça :
L066001|E0660001|1254.36|etc
L067001|E0670001|255.12|etc
le "column format" pourrait presque faire le job, mais comme il y a des nombres de longueurs variables, ça va pas.
merci d'avance pour votre aide.
Message édité par manu le 28-08-2007 à 21:42:51