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 :

Problème de syntaxe pour fichier SQL


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Par défaut Problème de syntaxe pour fichier SQL
    Bonjour les gens !

    J'ai un petit soucis avec la tentative de création d'un fichier ".SQL", que j'éxecute grâce à un fichier ".SH" avec Telnet.

    Voici en gros mon code :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    spool test.log
     
    truncate table ... ;
    commit;
     
    select 'Before Insert' , to_char(sysdate,'DD/MM/YYYY HH24:MI:SS')  from dual ;
     
    DECLARE 
    err_code varchar(200); 
    err_msg varchar(200);
    BEGIN
     
    insert into TABLE1 (arg1, arg2) 
    select to_char(sysdate,'YYYYMMDD'), to_char(sysdate,'HH24MISS')  from dual
    commit;
     
    Select 'After Insert' , to_char(sysdate,'DD/MM/YYYY HH24:MI:SS')  from dual ;
     
    EXCEPTION
      WHEN OTHERS THEN 
    		 BEGIN
    		 err_code := SQLCODE;
    	             err_msg := substr(SQLERRM, 1, 200);
    	             INSERT INTO ZERREURS  (nom, err_code, err_msg) values    ('TABLE1', err_code, substr( err_msg, 1, 200)); 
    	             commit;
                              END;
     
    END;
    /
     
    spool off ;
     
    exit
    Selon où je place le "DECLARE..BEGIN", je n'ai pas les mêmes résultats affichés dans Telnet, par rapport déjà à l'affichage des After Insert, et Before Insert (Ici, Seul Before Insert est affiché).

    J'utilise ce "Declare...Begin" pour la capture d'exceptions (que je n'arrive donc pas à faire)

    Chilvouplaich, help me !!!

    Merci d'avance!
    V.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Utilisez des dbms_output dans le bloc begin end pour afficher des messages (et sous SQLPlus faîtes set serveroutput on) mais surtout par pitié, APPRENEZ à respecter les règles du forum...

  3. #3
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Par défaut
    Le but n'est pas d'afficher les messages, ça marchait déjà avant de mettre le "declare begin" et l'exception !!!! C'est pour cela que je voudrais savoir où placer ce begin, afin qu'il ne fasse plus bugger mon code, et que je puisse capturer des erreurs possibles ?!

  4. #4
    Membre confirmé Avatar de links
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 113
    Par défaut
    si tu n'as que le "before insert" qui s'affiche c'est que le "after insert" pose problème, mais ça tu le sais déjà; maintenant si tu n'arrives pas a récupérer le code d'erreur, c'est a mon avis parce que tu as donné le même nom de colone de ta table à tes variables. remplace tes variables err_code et err_msg par v_err_code et v_err_msg respectivement.

  5. #5
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Par défaut
    Salut,

    En fait, le code marche trèes bien entre le Begin et l'Exception :

    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
     
    spool test.log
     
    truncate table ... ;
    commit;
     
    select 'Before Insert' , to_char(sysdate,'DD/MM/YYYY HH24:MI:SS')  from dual ;
     
    insert into TABLE1 (arg1, arg2) 
    select to_char(sysdate,'YYYYMMDD'), to_char(sysdate,'HH24MISS')  from dual
    commit;
     
    Select 'After Insert' , to_char(sysdate,'DD/MM/YYYY HH24:MI:SS')  from dual ;
     
    spool off ;
     
    exit
    Après avoir testé le code précédent seul (qui est donc bon), j'ai inséré le Begin et l'Exception, pour tenter de capturer les erreurs. Mais c là que se produisent les bugs (du After par exemple).

    Niveau capture d'erreur, ça marche aussi (en testant avec une boucle while entre le Begin et l'Exception)
    Mais avec l'insertion de cette capture d''exception avec mon code précédent, ça ne marche plus !!

    Comprends po !!!

  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
    en PL/SQL on faire SELECT ... INTO

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

Discussions similaires

  1. [AC-2007] Problème de syntaxe pour une formule SQL en VBA
    Par franckimmo dans le forum IHM
    Réponses: 4
    Dernier message: 12/02/2010, 10h54
  2. [VBA-Excel] Problème de syntaxe pour lien hypertexte
    Par matt8-5 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/01/2007, 11h23
  3. Problème de syntaxe pour concaténer des variables
    Par renaud26 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/09/2006, 09h44
  4. [MySQL] Problème récupération variable pour requête SQL !!
    Par mLk92 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/06/2006, 16h08
  5. Problème de syntaxe pour Firefox
    Par daladim dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/09/2005, 16h39

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