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 :

Oracle : execution d'un curseur dans un fichier de commande


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Points : 48
    Points
    48
    Par défaut Oracle : execution d'un curseur dans un fichier de commande
    Bonjour,
    Dans mon fichier de commande, j'ai mis le code suivant pour executer un fichier sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SET USERNAME=...
    SET PASSWORD=....
    SET HOSTSTRING=...
    sqlplus %USERNAME%/%PASSWORD%@%HOSTSTRING% @%BASE_PATH%\mon.sql
    Dans le fichier mon.sql, j'exécute via un cursor 3 procédures de cette façon :
    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
    16
    17
    declare DATECALC date;
    cursor CursorCalc is
    select date_s from table1 ;
    Begin OPEN CursorCalc;
    	  loop
    	  FETCH CursorCalc into DATECALC;
    	  EXIT WHEN CursorCalc%NOTFOUND;
    	  proc1(DATECALC);
    	  proc2(DATECALC);
                   proc3(DATECALC);
          END LOOP;
    CLOSE CursorCalc;
    END;
     
    commit;
    /
    exit;
    Ce code sql (en enlevant commit; /exit fonctionne sous Toad, il prend environ 1-2 min.
    Mais quand je lance mon fichier de commande, les procédures ne s'exécutent pas (les données ne sont pas mis à jour) et la commande dos se ferme très vite.
    Qu'est-ce que j'ai "raté" dans mon fichier sql ou dans mon .bat ?
    Pourquoi cela ne veut pas marcher avec un fichier de commande ?

    Merci d'avance

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

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

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

    Le problème ne vient pas du fichier de commande, mais du script sql.
    Pour qu'un bloc PL/SQL s'exécute sous SQL*Plus (et non pas TOAD), il faut qu'il se termine comme ceci :
    Dans votre code, il y a une ligne blanche après le "END;", du coup SQL*Plus ignore complètement le bloc PL/SQL.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 281
    Points
    281
    Par défaut ma fenête de commande DOS se ferme très vite...
    Accessoirement pour ce qui est de la commande DOS j'imagine qu'il y a une instruction exit dans le fichier de commande qui ferme la fenêtre.

    vous pouvez :

    1 Mettre une pause après l'appel de sqlplus pur avoir le temps de voir ce qui se passe.
    (tapez pause depuis DOS pour voir...)

    2 Si le fichier de commande est exécuté depuis DOS une astuce consiste à lancer une seconde session DOS depuis la première. La commande exit reviendra à la première session et la fenête ne se fermera pas.

    Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DOS> cmd
    Microsoft Windows XP [version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
    DOS>echo hello
    hello
    DOS>exit
    DOS>
    Pozzo

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/04/2008, 18h33
  2. Utilisation de positionnement de curseur dans un fichier
    Par roswellboy dans le forum Windows
    Réponses: 1
    Dernier message: 05/04/2008, 19h02
  3. Probleme de noob (curseur dans un fichier)
    Par freezerhm dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/07/2007, 19h38
  4. Positionner le curseur dans un fichier
    Par be_tnt dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 15/05/2006, 14h30
  5. Réponses: 3
    Dernier message: 10/04/2006, 14h16

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