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 :

sqlplus et fichier .bat


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 120
    Par défaut sqlplus et fichier .bat
    Bonjour,

    J'ai créé un fichier .bat pour lancer automatiquement l'exécution d'un script MonFichier.sql

    Fichier MonFichier.bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sqlplus /nolog @MonFichier.sql
    Voilà grosso-modo ce que fait le script MonFichier.sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    connect MaBase
    set echo on
    spool C:\MonFichier.log
     
    DEFINE NomVariable = CASE WHEN test THEN solution ELSE 'RIEN' END
     
    INSERT INTO schema2.MaTableS2 (champ1, champ2)
    SELECT champ1, champ2 FROM schema1.MaTableS1 WHERE Champ3=&NomVariable;
    exit

    Quand je lance l'exécution dans sqldeveloper, tout fonctionne correctement.
    Quand je lance l'exécution via le .bat dans sqlplus, j'ai le message d'erreur suivant : ERREUR à la ligne 7 : ORA-00904: "CASE" : identificateur non valide

    Auriez-vous une petite idée à me soumettre pour débloquer le problème ?
    Merci à tous,
    MarieO

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Par défaut
    Je pense que l'instruction CASE n'est utilisable qu'en PL/SQL, et non en SQL.

    Maintenant, ça n'explique pas comment tu as pu le faire fonctionner sous SQL Developper...

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 120
    Par défaut
    C'est bien ce que j'ai pensé en premier lieu, mais après vérification, l'expression CASE fonctionne en SQL (pas seulement en PL/SQL).

    MarieO

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    En effet, le SQL n'est pas un langage procédural donc CASE ou IF y sont interdits. Ceci étant dit, tu peux faire ceci :
    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
    18
     
    connect MaBase
    SET echo ON
    spool C:\MonFichier.log
     
    variable NomVariable VARCHAR2(10);
     
    BEGIN
     IF test THEN :NomVariable := solution ;
    ELSE 
    :NomVariable := 'RIEN' 
    END IF;
    END;
    /
     
    INSERT INTO schema2.MaTableS2 (champ1, champ2)
    SELECT champ1, champ2 FROM schema1.MaTableS1 WHERE Champ3=:NomVariable;
    exit

  5. #5
    Expert confirmé 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
    Par défaut
    Citation Envoyé par orafrance Voir le message
    En effet, le SQL n'est pas un langage procédural donc CASE ou IF y sont interdits.
    ...
    Amicus Plato sed magis amica ...

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est pas procédurale, c'est juste un DECODE évolué

    Enfin, j'imagine que c'était une boutade

  7. #7
    Expert confirmé 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
    Par défaut
    Citation Envoyé par orafrance Voir le message
    c'est pas procédurale, c'est juste un DECODE évolué

    Enfin, j'imagine que c'était une boutade
    Ce n’est pas procédural et c'est important de le rappeler. Mais il y a aussi un CASE qui fait partie du SQL, qu'il soit du DECODE évolué ou pas; en fait c'est pour cette partie que je suis intervenu. Et ne parlons pas des requêtes avec MODEL que notre ami Laurent Schneider aime bien.

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

Discussions similaires

  1. [9i][SQLPlus] spool en Interaction avec un fichier .bat
    Par Konrad Florczak dans le forum Sql*Plus
    Réponses: 34
    Dernier message: 07/09/2006, 16h08
  2. Ouverture de la fenêtre des imprimantes avec fichier .bat ??
    Par bbkenny dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 04/05/2005, 18h13
  3. Fichier Bat
    Par minimoi1234 dans le forum Administration
    Réponses: 1
    Dernier message: 08/03/2005, 09h01
  4. [BAT] commande AT pour exécuter fichier .bat
    Par PatLogan dans le forum Scripts/Batch
    Réponses: 10
    Dernier message: 04/01/2005, 16h51
  5. Fichier bat + FTP + passage parametres
    Par Leti dans le forum Scripts/Batch
    Réponses: 20
    Dernier message: 13/12/2004, 18h21

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