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*Plus Oracle Discussion :

[9i][SQLPlus] spool en Interaction avec un fichier .bat


Sujet :

Sql*Plus Oracle

  1. #1
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut [9i][SQLPlus] spool en Interaction avec un fichier .bat
    Bonjour

    je lance un fichier .bat qui me permet de faire des automatisations de taches type sqlldr (j'ai besoin de plusieurs utilisateurs sur plusieurs bases de données)

    j'ai donc dans mon fichier .bat des variables comme celles-ci

    test.bat
    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 grabdir=\\Croggbp2\BrokerSync
    set bkupdir=C:\Alpsbroker\Backups
    set logdir=C:\Alpsbroker\logs
    set zip=C:\gzip\bin\gzip.exe
    set rundir=C:\Alpsbroker
    set endtime=0
    set user=pegaextqa2
    set pass=password
    set db=prpctest
    set reports=C:\Alpsbroker\cron\reports
    [...]
     
    sqlldr userid=%user%/%pass%@%db% control=alpsbroker.ctl log=%logdir%\sqlldr_%fn%.log data=%bkupdir%\AlpsBroker%fn%.dat
    [...]
    ensuite j'ai mon fichier importdata.sql qui traite un certain nombre de taches.
    Tout marche bien sauf bien sur le spool, le login etant géré par le bat :

    comment faire pour prendre les variables %user% et %db% du fichier .bat soient pris en compte dans le fichier importData.sql.


    j'ai bien sur testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SHOW USER
    WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
    BEGIN
      UK_ALPSLOAD.PROCESSIMPORT;
    END;
    /
    commit;
    spool cron/reports/%db%/%user%/
    mais vous vous en doutez qu'il m'envoi chier à la compil.

    Merci pour vos réponses. Je ne vois vraiment pas comment faire.
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

  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
    il faut les passer en paramètre je pense.

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    tu peux peut-être employer &_USER et &_CONNECT_IDENTIFIER en 10g

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SQL> spool cron/reports/&_CONNECT_IDENTIFIER/&_USER/fichier.txt
    SQL> spool
    currently spooling to cron/reports/LSC01/SCOTT/fichier.txt
    pour db, tu peux aussi employer @

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SQL> spool cron/reports/@/john
    SQL> spool
    currently spooling to cron/reports/LSC01/john.lst
    tu peux aussi définir le nom de fichier dans une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SQL> def f=cron/reports/LSC01/SCOTT/fichier.txt
    SQL> spool &f
    SQL> spool
    currently spooling to cron/reports/LSC01/SCOTT/fichier.txt
    pour obtenir les variables d'environment depuis sqlplus, il faut passer soit par l'OS, ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    host echo %db%
    host echo def db=%db% > /tmp/mesvariables.sql
    @/tmp/mesvariables
    ou éventuellement en java (pas terrible)

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    sqlldr userid=user/pass@db

    ça marche ça ?

  5. #5
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    Oui mais c'est plutot ca qui marche pas :

    .bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlplus %user%/%pass%@%db% @importdata.sql
    et dans le contenu du importdata.sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SHOW USER
    WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
    BEGIN
      UK_ALPSLOAD.PROCESSIMPORT;
    END;
    /
    commit;
    spool cron/reports/%db%/%user%/
    Mais je vais essayer les propositions du dessus et je vous fait signe
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Petit commentaire hors sujet :


    Citation Envoyé par Konrad Florczak

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
    je préfère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
    en effet, la plupart des OS ne gèrent pas les codes de retour supérieur à 255.

    donc des erreurs styles ORA-01536 : space quota exceeded retourneront 0 (1536 modulo 256).

  7. #7
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    Citation Envoyé par laurentschneider
    tu peux peut-être employer &_USER et &_CONNECT_IDENTIFIER en 10g

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SQL> spool cron/reports/&_CONNECT_IDENTIFIER/&_USER/fichier.txt
    SQL> spool
    currently spooling to cron/reports/LSC01/SCOTT/fichier.txt
    pour db, tu peux aussi employer @
    Il me dit lorsque je lance le bat :
    http://konflor.free.fr/images/trash/cron.gif
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

  8. #8
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    comme je l'ai mentionné, _USER c'est du 10g

  9. #9
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    Citation Envoyé par laurentschneider
    comme je l'ai mentionné, _USER c'est du 10g
    Merci beaucoup Laurent,

    la Solution pour 9i n'est pas la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    spool cron/reports/&_CONNECT_IDENTIFIER/USER/current_report.html
    Pas mal ton blog by the way, and entirely in English I see
    http://konflor.free.fr
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

  10. #10
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    9i
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    set head off
    col user new_v _user 
    select USER from dual;
    WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
    BEGIN
      UK_ALPSLOAD.PROCESSIMPORT;
    END;
    /
    commit;
    spool cron/reports/@/&_user/fichier.txt

  11. #11
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Konrad Florczak
    la Solution pour 9i est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    spool cron/reports/&_CONNECT_IDENTIFIER/USER/current_report.html
    mais la tu sauves dans cron/reports/prpctest/USER/current_report.html pas dans cron/reports/prpctest/pegaextqa2/current_report.html

  12. #12
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Konrad Florczak
    Pas mal ton blog by the way, and entirely in English I see
    merci, mais c'est sans doute bourré de fautes quand c'est lu par un anglophone

  13. #13
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    Désolé mais ca ne marche pas, enfin si sauf qu'on ne peut pas l'automatiser :

    voila ce qui me dit le cmd :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    USER
    -----------------------------
    PEGAS3USR
    [...]
     
    SP2 - 0332 : Cannot create spoof file
    Alors que j'ai bien mis le select user from dual et tout ce que tu m'as dit

    D'ailleurs je t'envoi les fichiers importData.sql et puis les fichiers bat pour deux users sur deux db differentes.

    telechargeable ici (14Kb) : http://konflor.free.fr/images/trash/S3tosbs.zip

    Merci beaucoup pour ton aide !
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

  14. #14
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    c'est pas un problème de sqlplus, mais d'os

    en effet, dans dos, il faut employer \ et non /

  15. #15
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    j'ai essayé

    spool s3tosbs\reports\@\USER\current_report.html

    et toujours le meme probleme

    Cannot create spool file.
    Tu parles bien de importData.sql ou du fichier .bat ?
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

  16. #16
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    Bien j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    spool current_report.html
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    spool /test/current_report.html
    et ca marche nickel

    donc ca doit etre un probleme avec le @ et le &_user
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

  17. #17
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    > spool s3tosbs\reports\@\USER\current_report.html

    sans doute que le répertoire s3tosbs n'existe pas

  18. #18
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    bien je continue donc :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    spool s3tosbs/current_report.html
    Ca Marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    spool s3tosbs/test/current_report.html
    ca marche quand le dossier test est créé



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
    BEGIN
      UK_ALPSLOAD.PROCESSIMPORT;
    END;
    /
    commit;
    spool s3tosbs/@/current_report.html
    Ne marche pas... Donc deja il y a un probleme avec le '@' pour la connexion

    Faisons les choses etapes par etapes
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

  19. #19
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    est-ce que s3tosbs/prpctest est créé?

    je n'ai pas windows, donc je ne peux pas tester, mais ça devrait marcher...

    sinon tu n'as qu'à employer &_CONNECT_IDENTIFIER

  20. #20
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    oui prpctest est crée (par le bat automatiquement d'ailleurs)

    j'ai essayé de mettre dans le bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sqlplus def f=/s3tosbs/reports/%db%/%user%
    sqlplus %user%/%pass%@%db% @importData.sql
    et ensuite dans le sql

    spool &f

    mais il me met encore et toujours : enter value for f :

    donc je sais vraiment plus quoi faire.

    spool /s3tosbs/reports/nom_de_db/nom_d'user/current_report.html

    Erg, je suis en train de parcourir les docs

    si je mets spool /s3tosbs/reports/USER/current_report.html

    Ca marche bien parce que USER affiche directement (variable globale jepense), si je mets &_user il m'envoi chier (eter value user parce que j'ai la version 9.2.0.7.0

    donc il faut que je trouve le meme truc que USER mais pour afficher le nom de la DB, j'ai essayé de regarder dans les docs mais comme par hasard... nada

    Bien je continue de chercher dans les docs et je vais essayer :

    spool /s3tosbs/reports/@/USER/current_report.html -> marche pas
    spool /s3tosbs/reports/&@/USER/current_report.html -> pas essayé
    spool /s3tosbs/reports/&_CONNECT_IDENTIFIER/USER/current_report.html -> pas essayé

    qu'est ce que je pourrais utiliser d'autres ?
    Avant de poster consultez la recherche avancée du forum
    N'oubliez pas le bouton

    Formation LaTeX et Outils Pratiques

    C'est ce que nous pensons déjà connaître qui nous empêche souvent d'apprendre.

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

Discussions similaires

  1. Interaction avec un fichier Excel
    Par Miyukaze dans le forum Langage
    Réponses: 8
    Dernier message: 20/08/2009, 10h43
  2. interaction avec un fichier Excel
    Par Ptikir dans le forum VBA Outlook
    Réponses: 7
    Dernier message: 09/04/2009, 13h19
  3. Problème avec un fichier .BAT
    Par jbidou88 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 01/05/2006, 13h03
  4. lancer un test avec un fichier .bat
    Par marc olivier dans le forum API standards et tierces
    Réponses: 14
    Dernier message: 28/04/2006, 10h33
  5. Problème avec un fichier .BAT
    Par jbidou88 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 26/04/2006, 14h55

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