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 :

Aide pour Script sur Oracle


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut Aide pour Script sur Oracle
    Bonjour !

    Bon je vais pas tourner autour du pot, et je vais dire tout de suite sur quoi je bloque :

    Je dois faire un script qui s'éxécuteras ( via une tache planifié ? ) tout les jours à la méme heure, afin de récupérer des donnés sur Oracle et les passer en fichier plats.
    Ces fichiers servent ensuite à alimenter une autre base de donnés ailleurs, mais ca c'est un autre probléme qui me semble plus a ma porté ( j'ai déja des pistes ... )

    Alors voila, si quelqu'un se sent de sauver un pov tite stagiare en galére ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    que je comprenne bien... tu veux qu'on fasse ton travail ou tu bloques sur certaines choses ?

    Sinon, tu peux chercher DB Link pour t'éviter le passage par un fichier plat ou alors : spool, SQL*Loader, SQL*Plus et SELECT sont les mots clés qui devraient t'aider

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Loooool !

    Ah oui, je veux bien que quelqu'un fasse mon travail !
    Mais j'en demande pas tant

    Je veux juste des pistes, parcque la je vois pas par ou partir sachant que j'ai aucune conaissance en la matiére ... Et que c'est LE truc qui me bloque dans mon boulot ...

    Passer par fichier plats est une obligation technique qu'on m'as donée, avec ces fichiers j'alimente une autre BDD et avec cette BDD je fais une page interne qui permet de visionner des infos ( en fonction de ce que l'utilisateur choisie ).

    Mais je demande pas tout ca hein ...
    Je demande juste des pistes ou plus je suis preneuse de comment faire un script pour aller récupérer des tables dans Oracle et les transformer en fichier plats...
    Oui j'y connais rien en SQL, ou SQL*plus, mais si t'es sur qu'il faut partir sur ca je me jette dedans.

    Merci de ta réponse en tout cas

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    ha oui, tu vas devoir faire une requête SQL c'est incontournable. En gros ce sera construit ainsi :

    - Ecriture de la requête dans un fichier .SQL
    - lancement de SQL*Plus
    - configuration de la session : set linesize, set pagesize, etc...
    - commande SPOOL <fichier plat>
    - exécution du fichier SQL (@<nom_du_fichier>)
    - commande SPOOL OFF

    Bon courage

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Bon déja MERCI !!
    J'avais commencée a regarder ce que faisait spool grace a tes mots-clés, et ca m'as pas mal mis sur la voie.

    Par contre y'as un truc que je ne comprends pas dans ton éxplication.

    Citation Envoyé par orafrance

    - exécution du fichier SQL (@<nom_du_fichier>)
    Tu veux dire quoi par la ?

    C'est pas suffisant si je fait un script genre :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set pagesize, set termout, set feedback, set linesize, etc ...
    spool fichier_de_sortie.csv
    select blabla from ma_table
    spool off
    set pagesize, set termout, set feedback, set linesize, etc ...

    D'aprés ce que j'ai pu trouver pour le moment c'est la méthode qui me semblait la mieux adapter.
    Par contre quitte a passer pour une conne, je t'avoue me poser la quéstion de savoir comment ca se connecter a ma base oracle...

    Ah ... les plaisirs de débuter... On tatonne, on comprends rien et surtout ... on passe pour une conne

    Désolée ...

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Oui, tu fais un script comme tu dis mais il faut bien l'exécuter

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    ...
    Elle est visible ta signature pourtant ...
    Et je me suis quand méme débrouillée pour oublier la balise code ...

    Bref pardon. Voila ou j'en suis :

    J'ai crée un script sql que voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    set pagesize 0
    set termout off
    set feedback off
    set linesize 132
     
    spool Melutest.csv
     
    select * from table
     
    spool off
     
    set termout on
    set feedback on
    set pagesize 60
    Je l'éxécute via un fichier .bat que voici :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    C:\xampp\mysql\bin\mysql -u******* -p******* < test.sql
    pause
    J'ai mis la pause pour avoir le temps de voir ce qui marchais pas ...
    Parcque non ca marche pas ...

    Je me prends :
    ERROR 1193 (HY000) at line 1 : Unknow system variable 'pagesize'

    Bon c'est un fait, j'ai pas bien compris la différence entre mysql et sql*Plus, ca vient de ca ?

    Et je sais toujours pas si j'éxécute mon script au bon endroit, la base oracle sur laquelle je veux aller prendre les infos est sur mon réseau ...

    Encore merci de prendre du temps pour m'éxpliquer, a la fin t'auras le droit de me


  8. #8
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    C:\xampp\mysql\bin\mysql -u******* -p******* < test.sql
    pause
    Si vous travaillez avec Oracle, il faut utiliser l'exécutable sqlplus.exe ou sqlplusw.exe. De façon générale, les outils Oracle et MySQL clients sont totalement incompatibles car ce sont 2 produits tout à fait différents !

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Bon c'est déja ca de pris !
    Merci, ca m'as permi d'avancer, mais pas trés loin hélas... J'ai vite rebloqué...

    J'ai a disposition Oracle SQL*Plus, mais j'ai tellement tenter des conneries dessus que je crois qu'il m'en veut maintenant

    Bref, j'ai donc mon script qui est prét et qui est censé marcher, mais c'est pas si simple :s

    1: Je n'arrive pas à le lancer sous Oracle SQL*Plus :

    Ca me renvois un truc genre : "Entrée limitée à 15 caractères"
    Je me demande d'ailleurs comment il arrive a cibler mon fichier test.sql puisque ce dernier est sur le bureau ...

    2: Je n'arrive pas à lancer Oracle SQL*Plus via un fichier.bat ... Ca il veut vraiment pas, ou au mieux j'arrive a lancer le bat qui l'ouvre mais ca lance une fenétre de connection, c'est plus du DOS donc je peux pas lui envoyer les informations via mon bat a moi ... ( du moins je crois )

    Voila ...
    Une piste ? Un foutage de gueule ? Je suis preneuse de tout ce qui passe la !!

  10. #10
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est rien, tu dois avoir de retour à la ligne en fin de fichier SQL

  11. #11
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    En effet, j'ai mis des " ; " a la fin de chaque ligne et j'ai mis le fichier .sql dans le répértoire d'éxécution et la ca "marche".

    Nottons les guillemets sur marche
    J'ai en effet encore des problémes relativement intéréssant au niveau de la mise en forme... Tout s'inscris dans la premiére case de chaque ligne en fait ( je pensais que ca méttrai automatiquement une case par collone ... )

    Mais il me semble avoir vu parler de ca ailleurs, je vais farfouiller a droite a gauche pour voir.

    Par contre j'aimerais savoir si c'est possible de mettre le fichier .sql autre part que dans le répértoire d'éxécution de SQL*Plus, et est-ce qu'il est possible de créer les fichier .csv ailleurs que dans ce méme répértoire ?

    Encore merci pour tout ce que vous faites, j'ai l'impréssion de beaucoup avancer ( et apprendre par la méme occasion ) grace a vous.

  12. #12
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    pour exécuter ou lire les fichiers dans un autre répertoire, il suffit de faire précéder le nom de fichier du chemin complet

  13. #13
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    J'ai un peu tout tenté mais je vois pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> @C:\Documents and Settings\Bureau\test.sql
    SQL> C:\Documents and Settings\Bureau\@test.sql
     
    SQL> @\Documents and Settings\Bureau\test.sql
    SQL> \Documents and Settings\Bureau\@test.sql
    J'ai tenté ca... Mais j'ai pris des erreurs pour chacun ...
    Genre :
    -impossible d'ouvrir le fichier "\Documents.sql"
    -commande inconnue début "\Documents..." - reste de la ligne ignoré.
    -Rien à modifier.

    Bref ca doit étre tout con, mais je trouve pas...


    Pour mon histoire de colone t'as pas un mot clé pour aiguiller ma recherche, je me prends la téte la ...

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @"C:\Documents and Settings\Bureau\test.sql"
    les espaces posent problème

  15. #15
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Niquel, ca marche !
    Nottons l'absence de guillemets

    Je peux donc le faire partir d'ou je veux et créer le fichier csv ou je veux !
    Me reste plus qu'a trouver comment faire pour que toutes les données ne se mette pas dans la méme colone ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT Col1||Col4 from agent;
    Bon doit surement y'avoir une feinte, mais je la trouve pas pour le moment...
    Pour le moment ca me met bien ma séléction dans mon fichier csv, mais les données de la colone 1 et celle de la colone 4 ( c'est pour suivre l'exemple du bout de code ) vont se trouver collés dans la méme colone, si j'agrandis mon select ca fait la méme chose. Toute les donées partent dans la méme colone ....

    Un mot clé ? une piste ?

    Je suis désolée c'est doit étre lourd de coacher les débutant(e)s comme moi ...
    Mais je te remercie une niéme fois pour toutes les pistes ( voir bout de solution directement ) que tu me donne !

  16. #16
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    j'ai trouvée...
    Mais si quelqu'un a un endroit ou je peux voir comment faire une meilleur mise en page, je suis preneuse !!
    Parcque j'ai encore deux trois petit soucis ( la dérniére instruction que je charge a un gros gros gros espace dérriére elle et il me la prends, enfin je sais pas trop ce qu'il fait )

    Je suis quand méme super contente d'avoir trouvé ca au moins !!
    ( y'as pas de petite victoire ! )

  17. #17
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    C'était tout con

    il suffisait de rajouter à la fin de mon select !!



    Merci beaucoup pour l'aide aporté, je pense que pour ce point on peut dire que c'est bon !! c'est résolu !!

  18. #18
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    plutôt que concaténer les colonnes (avec ||) tu peux les séparer par des virgules et formater chaque colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    COL nmat FORMAT A5
    COL nmat FORMAT A30
    SELECT nmat,anom ...

  19. #19
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Dans le CSV il y a
    - un séparateur de champs (obligatoire), en général ;
    - un délimiteur de champs (facultatif), en géné ral " (apostrophes)

    Pour faire un fichier CSV avec séparateur = ;, et sans délimiteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select col1||';'||col2||';'||.... FROM table
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  20. #20
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    pour un format impeccable tu peux alors écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select col1,';',col2,';',.... FROM table

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VBA-E] aide pour macro sur excel
    Par letoulouzin31 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 24/05/2006, 11h29
  2. aide pour script php/mysql
    Par jem27 dans le forum Débuter
    Réponses: 18
    Dernier message: 27/03/2006, 18h08
  3. Besoin d'aide pour requête sur grosse table
    Par Fabouney dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2006, 09h01
  4. aide pour requete sur 2 tables avec clé étranere
    Par richton95 dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/12/2005, 13h32
  5. aides pour script en shell
    Par komatek dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 12/08/2003, 15h36

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