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 :

Comment mettre à jour une table à partir d'un fichier Excel ?


Sujet :

SQL Oracle

  1. #1
    Battosaiii
    Invité(e)
    Par défaut Comment mettre à jour une table à partir d'un fichier Excel ?
    Bonjour,


    J'aimerais créer un script pour, à partir d’une table Excel fournie pour chaque schéma et qui s’appelle AUTEURS_TROUVES, mettre à jour la table DOCUMENT ainsi :
    - DOCUMENT.ID_SIGNATAIRE = AUTEURS_TROUVES.ID_AUTEUR_IDENTIFIE
    - DOCUMENT.ID_SIGNATAIRE_DELEGUE = AUTEURS_TROUVES.ID_OPERATEUR (ou DOCUMENT.IDOPERATEUR)
    pour tous les enregistrements où :
    - DOCUMENT.AUTEUR = AUTEURS_TROUVES.AUTEUR
    - DOCUMENT.IDOPERATEUR = AUTEURS_TROUVES.ID_OPERATEUR
    - DOCUMENT.ID_SIGNATAIRE = AUTEURS_TROUVES.ID_OPERATEUR (ou DOCUMENT.IDOPERATEUR)


    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2006
    Messages : 142
    Points : 130
    Points
    130
    Par défaut
    Bonjour,

    dans ces cas là le plus simple est d'utiliser SQL*Loader pour charger les données dans des tables temporaires de même structure que les fichiers csv, puis de faire un script SQL qui charge avec la règle voulue les données depuis les tables temporaires vers les tables finales.

    Cdlt.
    La différence entre la théorie et la pratique, c'est qu'en théorie il n'y a pas de différence entre la théorie et la pratique. En pratique, si.

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Utilisez les tables externes.

  4. #4
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    J'ai eu le même soucis récemment pour un projet et j'ai utilisé le SQL plus, aussi appelé PL SQL.
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  5. #5
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Ozeil Voir le message
    J'ai eu le même soucis récemment pour un projet et j'ai utilisé le SQL plus, aussi appelé PL SQL.

  6. #6
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Je me suis trompé?
    (J'ai découvert ce langage cette semaine... )
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    PL/SQL est un langage de développement propriétaire d'Oracle qui encapsule (pas tout à fait complètement, mais passons) et enrichi le SQL.

    SQL*Plus est une outil qui permet de manier SQL et PL/SQL.

    C'est comme si vous disiez que C++ et Visual Studio c'est pareil !

  8. #8
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Waldar Voir le message
    PL/SQL est un langage de développement propriétaire d'Oracle qui encapsule (pas tout à fait complètement, mais passons) et enrichi le SQL.

    SQL*Plus est une outil qui permet de manier SQL et PL/SQL.

    C'est comme si vous disiez que C++ et Visual Studio c'est pareil !
    Je viens de le découvrir, on peut pas tout sa voir
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  9. #9
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Ozeil Voir le message
    Je viens de le découvrir, on peut pas tout sa voir
    [Edit]...[/Edit]

    @Waldar que est ce-que tu veux dire par « ...encapsule pas tout à fait complètement … le SQL »

  10. #10
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Que la plupart des fonctions SQL existent en PL/SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    declare
        v$_toto varchar2(20);
    begin
        v$_toto := greatest('A', 'B');
        dbms_output.put_line(v$_toto);
    end;
    /
    Mais pas toutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    declare
        v$_toto1 XMLType;
        v$_toto2 varchar2(20);
    begin
        v$_toto1 := XMLElement(a, 'B');
        v$_toto2 := v$_toto1.getClobVal();
        dbms_output.put_line(v$_toto2);
    end;
    /
     
    ORA-06550: Ligne 4, colonne 16 :
    PLS-00201: l identificateur 'XMLELEMENT' doit être déclaré
    ORA-06550: Ligne 4, colonne 5 :
    PL/SQL: Statement ignored
    Il faut ruser un peu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    declare
        v$_toto1 XMLType;
        v$_toto2 varchar2(20);
    begin
        select XMLElement(a, 'B') into v$_toto1 from dual; 
        v$_toto2 := v$_toto1.getClobVal();
        dbms_output.put_line(v$_toto2);
    end;
    /
     
    <A>B</A>

  11. #11
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Bref, c'est documenté! SQL Functions in PL/SQL Expressions
    Oracle a connu pire que ça : avant la version 9 il y avait un moteur SQL différent dans PL/SQL que celui de la base. Conséquence : des requêtes qui fonctionait sur sqlplus ne compilait pas en PL/SQL !

  12. #12
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Bien vu pour le lien sur la doc !
    Je ne voulais rien dire d'autre que :
    In PL/SQL expressions, you can use all SQL functions except:...

  13. #13
    Battosaiii
    Invité(e)
    Par défaut
    Merci de vos reponses interessantes.
    Je suis en train de convertir le fichier xls en csv.
    Ensuite j'utilise sqlloader pour charger le csv dans la base oracle.

Discussions similaires

  1. Réponses: 10
    Dernier message: 19/07/2013, 12h24
  2. [AC-2007] Mettre à jour une table à partir de données d'une requette
    Par didi_morel dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/01/2011, 14h50
  3. Mettre à jour une table à partir d'une autre
    Par jjker dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/06/2009, 11h20
  4. mettre à jour une table à partir d'un select
    Par Peanut dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/11/2007, 17h29
  5. Réponses: 1
    Dernier message: 23/01/2006, 18h53

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