IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Parse en oracle


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Par défaut Parse en oracle
    Bonjour,

    Je suis en train de faire une procédure stockée, qui va generer un fichier contenant toutes les lignes d'une requete.

    Pour cela, je met ma requete dans un curseur et j'écris chaque ligne du fichier puis je le ferme.
    Ma requete ressemble a ça :
    SELECT c.firm|| ';' || c.number|| ';' || c.date from tclients;

    du coup ça me donne bien un fichier csv a la fin

    Maintenant, j'ai besoin pour chacune des lignes d'executer une procedure stockée qui prend comme argument c.firm et c.number. j'ai donc besoin de parser le contenu de la ligne du curseur pour prendre le premier champs avant le ; et le second, et je sais pas du tout comment faire en oracle

    pouvez vous m'aider ?

    d'avance merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il vous faudra combiner les fonctions INSTR (recherche de chaîne) et SUBSTR (extraction de chaîne).

  3. #3
    Membre chevronné Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Par défaut
    Bonjour,

    Dans la discussion suivante, on parle le lecture et d'interprétation de fichier au format csv. Ca devrait vous aider j'espère :
    http://www.developpez.net/forums/d79...ble-dynamique/

  4. #4
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Il y quelque chose que je ne comprends pas

    Tu l'extrais comment ton csv ?

    Par PLSQL ?

    Dans ce cas pourqoui créer ce fichier alors que tu peux requeter la table dans ton curseur et faire directement l'execution avec les parametres
    sans passer par le fichier csv.

    du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ....
    for x in (select col1 ,col2 from tab 1 where ...) loop
      proc_1 (x.col1,x.col2) ;
    end loop;
    ....

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Par défaut
    C tout simple, mais j'connais vraiment pas bcp oracle

    en fait ma ligne est contenue dans la variable varchar2 : Tamp_Ligne

    exemple de données :

    01;08634785;;12 rue bilou;91230;Travi;FRANCE;


    et j'arrive pas a extraire juste '01' et '08634785' pour les mettre dans des variables

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Regardez le lien que vous a donné xdescamp, ça devrait suffire.
    Au bout de quelques essais avec SUBSTR et INSTR, vous y arriverez tout seul.

  7. #7
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Si je comprends bien

    tu peux faire directement



    1.selection dans la table pour le curseur
    2.executer la procedure avec parametre en LOOP

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    FOR x IN (SELECT col1 ,col2 FROM tab 1 WHERE ...) loop
      proc_1 (x.col1,x.col2) ;
    end loop;
    ....
    .
    c'est le chemin le plus rapide

    car le cheminement que tu proposes est

    1.selection de la table.
    2.extraction vers fichier plat
    3.selection dans le fichier plat
    4.execution de la procedure avec parametre

    evidement dans un but didactique c'est autre chose , du point de vue de la performance ...

Discussions similaires

  1. Cryptage de colonnes sous Oracle
    Par Julian Roblin dans le forum SQL
    Réponses: 9
    Dernier message: 28/11/2006, 18h24
  2. [ORACLE 8.1.7.3] Plus de parse que d'execute ?
    Par had69 dans le forum Oracle
    Réponses: 8
    Dernier message: 24/10/2005, 13h54
  3. [VB6] Connection ODBC Oracle
    Par babe dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/10/2002, 16h52
  4. [Kylix] sqlconnection + oracle
    Par tibo55555 dans le forum EDI
    Réponses: 1
    Dernier message: 02/09/2002, 09h09
  5. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo