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 08/04/2008, 19h56   #1
Membre éprouvé
 
Avatar de star
 
Inscription : février 2004
Messages : 450
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 450
Points : 417
Points : 417
Par défaut Découpage chaine et Insertion dans table

Bjr tous,
BD Oracle 10gR2
J'aurai besoin de lire les lignes d'un fichier texte dont les données intrinsèques sont séparées les unes des autres par le caractère '@', puis de pouvoir les insérer dans les colonnes d'une table résultat.
Je souhaiterai écrire une fonction PL/SQL pour réaliser cela sans utiliser SQL*LOADER.
Une ligne se présente de cette manière :
@1@A@I@20071213@FRP@SEATRADE@BEP@PAP@FRIO HELLENIC@@@N@
Comment pourrais-je coder ma fonction PL/SQL de manière à ce que les données puissent être insérées dans les colonnes de ma table résultat ?
Je vous remerçie d'avance de votre aide.
.
star est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 12h02   #2
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 457
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 457
Points : 4 222
Points : 4 222

Code :
1
2
3
4
5
6
7
8
SELECT  SUBSTR(ligne, INSTR(ligne, '@',1,1)+1, INSTR(ligne, '@', 1,2) - INSTR(ligne, '@',1,1) -1) AS col1,
        SUBSTR(ligne, INSTR(ligne, '@',1,2)+1, INSTR(ligne, '@', 1,3) - INSTR(ligne, '@',1,2) -1) AS col2,
        SUBSTR(ligne, INSTR(ligne, '@',1,3)+1, INSTR(ligne, '@', 1,4) - INSTR(ligne, '@',1,3) -1) AS col3,
        SUBSTR(ligne, INSTR(ligne, '@',1,4)+1, INSTR(ligne, '@', 1,5) - INSTR(ligne, '@',1,4) -1) AS col4
FROM (SELECT '@1@A@I@20071213@FRP@SEATRADE@BEP@PAP@FRIO HELLENIC@@@N@' ligne FROM dual)
 
COL1	COL2	COL3	COL4
1	A	I	20071213
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est actuellement 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 15h07.


 
 
 
 
Partenaires

Hébergement Web