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

 Oracle Discussion :

sqlloader et option when [10g]


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut sqlloader et option when
    Coucou, c'est encore moi

    Je teste maintenant sql*loader et j'ai vu qu'il y avait l'option "when" pour la partie "into table".
    Apparemment cette option ne sait gérer que "égal" et "différent". Il n'est pas possible d'utiliser un supérieur ou un like?

    On est bien obligé d'avoir la table déjà créée, c'est bien ça?

    Et une dernière question pour la route: comment exporter dans un fichier le contenu d'une table? Un sql*loader inversé en fait. L'export donne un fichier illisible. ok on peut utiliser "strings" pour voir son contenu mais c'est pas terrible. Et le mode "show=y" de l'import ne permet de voir que la structure de la table.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 954
    Par défaut
    Apparemment cette option ne sait gérer que "égal" et "différent". Il n'est pas possible d'utiliser un supérieur ou un like?
    Pour sqlloader je ne sais pas, que donne tes tests ?
    Sinon d'une manière plus générale les tables externes permettent des chargement plus flexible que sqlloader.
    Ici on peut utiliser un multi_table_insert à partir d'une table externe.

    comment exporter dans un fichier le contenu d'une table?
    spool dans sqlplus me semble l'approche la plus simple.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Pour sqlloader je ne sais pas, que donne tes tests ?
    Un beau message d'erreur disant qu'il n'aime que le égal et le différent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQL*Loader-350: Syntax error at line 4.
    Expecting = or "<>", found "LIKE".
     into table mail when idclient LIKE '2'
                                   ^
    Citation Envoyé par skuatamad Voir le message
    Sinon d'une manière plus générale les tables externes permettent des chargement plus flexible que sqlloader.
    Ici on peut utiliser un multi_table_insert à partir d'une table externe.
    Merci, je vais regarder ça.

    Citation Envoyé par skuatamad Voir le message
    spool dans sqlplus me semble l'approche la plus simple.
    Effectivement, c'est pas mal. Voici ce que j'ai utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SET colsep ";" --séparateur
    SET trimspool ON --enlève les espaces en fin de ligne
    SET heading off --enlève la description de la colonne
    SET echo off --non affichage de la commande (pour les scripts uniquement)
    SET feedback off --enlève le message de fin
    SET pagesize 0 --enlève les saut de page, description de la colonne, etc ... (SET pagesize 14 pour le réactiver)
    SET linesize 1000 --1000 caractère sur une ligne avant de faire un retour chariot
    spool test.csv
    select * from client ;
    spool off
    Par contre ça met des espaces en plus pour que chaque champ fasse bien la longueur définie. Existe-t-il une option pour les enlever ?
    Et concernant le linesize, un moyen pour éviter de se demander quelle sera la longueur max à indiquer (comme une option infinie) ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    Bonjour,

    Pour enlever les espaces blancs, je connais cette méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    spool test.csv
    SELECT champ_1 || ';' || champ_2 || ';' || ... || champ_n  FROM client ;
    spool off
    Aucune idée s'il existe une variable indiquant la longueur max de la variable LINESIZE

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci, l'export est plus joli comme ça. Je me le note dans un coin, ça me sera sûrement utile.

    [Edit]Effectivement, les tables externes sont plus faciles à utiliser que sqlloader. Et je peux faire plus d'action (comme des like avec)

    Merci à tous.
    Dernière modification par Invité ; 22/04/2013 à 15h03.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SqlLoader et clause WHEN
    Par babylone7 dans le forum SQL*Loader
    Réponses: 19
    Dernier message: 07/07/2009, 10h31
  2. Oracle 9i, sqlloader avec When
    Par bilalove dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 02/08/2007, 08h46
  3. Oracle 9i, sqlloader avec When
    Par bilalove dans le forum SQL*Loader
    Réponses: 0
    Dernier message: 01/08/2007, 22h54
  4. [SQLLOADER] probleme clause when
    Par piro dans le forum SQL
    Réponses: 10
    Dernier message: 08/02/2007, 17h23

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