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

PL/SQL Oracle Discussion :

ERROR = SQL Statement ignored


Sujet :

PL/SQL Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 6
    Par défaut ERROR = SQL Statement ignored
    Je suis entrain de créer une base de données d'un système de gestion d'une banque. Lors de la création d'une procédure nommé "Crediter_Argent" j'ai affronté un problème au niveau la ligne 18 de mon code SQL "ERROR = SQL Statement ignored " !!!!!

    insert into credit(cr_id,montant_total,taux_intr,duree_remb,cr_date,cr_type,rib,montant_mensuel)
    values (p_crid,p_montant,p_taux,p_duree,p_date,p_type,p_rib,p_montant_mensuel);

    Voici tout le 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
    create or replace procedure Crediter_Argent(p_montant in credit.montant_total%type,p_taux in credit.taux_intr%type,p_duree credit.duree_remb%type,p_type in credit.cr_type%type,p_rib compte.rib%type)
     
    is
     
    test_val boolean;
    p_date Date;
    v_nb number;
    p_crid credit.cr_id%type;
    p_montant_mensuel credit.mentant_mensuel%type;
    credit_non_valide exception;
     
    begin
     
    test_val:=Test_Validite_Credit(p_montant,p_taux,p_duree,p_rib,p_montant_mensuel);
     
    if(test_val)
    then
     
    Deposer_Argent(p_montant,p_rib);
    dbms_output.put_line('le credit a été versé dans le compte');
    select count(*) into v_nb from credit where rib=p_rib;
    p_crid:=v_nb+1;
    p_date:=sysdate();
    insert into credit(cr_id,montant_total,taux_intr,duree_remb,cr_date,cr_type,rib,montant_mensuel) values (p_crid,p_montant,p_taux,p_duree,p_date,p_type,p_rib,p_montant_mensuel);
    dbms_output.put_line('credit sauvegarde');
     
    else
    raise credit_non_valide;
    end if;
     
    exception
    when credit_non_valide then raise_application_error(-20001,'credit_non_valide ');
    end Crediter_Argent;
    NB: Je travaille sur Oracle 10g
    Veillez m'aidez à résoudre ce problème
    Merci d'avance

  2. #2
    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
    Serait-il possible d'avoir le message d'erreur complet ?

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 6
    Par défaut
    ERREUR à la ligne 18 : PL/SQL: SQL Statement ignored
    Le problème c'est qu'il n'affiche pas le code de l'erreur !!

  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
    p_date:=sysdate();

    est incorrect, s'il y a d'autres erreurs de syntaxe, je te laisse le soin de les trouver

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 211

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par orafrance Voir le message
    p_date:=sysdate();
    est incorrect
    Ben qu'est-ce que tu reproches à cette ligne ??

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Ben qu'est-ce que tu reproches à cette ligne ??
    Syntax error
    http://download.oracle.com/docs/cd/B...nctions172.htm

  8. #8
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Et alors ? Je ne vois toujours pas la queue d'une erreur dans la ligne incriminée.

  9. #9
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Bien vu Pomalaix, PL/SQL et SQL se comportent différemment ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select sysdate() from dual;
     
    Error at line 1
    ORA-00923: mot-clé FROM absent à l'emplacement prévu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    declare
        v$_date1 date;
        v$_date2 date;
    begin
        v$_date1 := sysdate();
        dbms_output.put_line('Date1 : ' || to_char(v$_date1, 'hh24:mi:ss'));
        select sysdate() into v$_date2 from dual;
        dbms_output.put_line('Date2 : ' || to_char(v$_date2, 'hh24:mi:ss'));
    end;
    /
     
    Date1 : 17:36:29
    Date2 : 17:36:29

  10. #10
    Invité
    Invité(e)
    Par défaut
    Mea Culpa !

  11. #11
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par Waldar Voir le message
    PL/SQL et SQL se comportent différemment ici
    Ah, enfin un qui n'affirme pas que la Terre est plate sans tester !

    En PL/SQL, il est parfaitement légal d'appeler les fonctions ou procédures niladiques (qui ne prennent aucun paramètre) avec des parenthèses vides.
    Là où c'est vicieux, c'est qu'il n'est pas possible de créer une procédure ou fonction en mettant des parenthèses vides.

    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
    SQL> create or replace procedure sans_param()
      2  is
      3  begin
      4     null;
      5  end;
      6  /
     
    Avertissement : Procedure creee avec erreurs de compilation.
     
    SQL> show error
    Erreurs pour PROCEDURE SANS_PARAM :
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    1/22     PLS-00103: Symbole ")" rencontre a la place d'un des symboles
             suivants :
             <identificateur> <identificateur entre guillemets> current
    Mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SQL> create or replace procedure sans_param
      2  is
      3  begin
      4     null;
      5  end;
      6  /
     
    Procedure creee.
     
    SQL>
    SQL> exec sans_param();
     
    Procedure PL/SQL terminee avec succes.
    Allez j'avoue, je me suis fait plaisir à pas cher sur ce coup-là...

  12. #12
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 6
    Par défaut
    Bon je vois que ça été chaude la discussion mais j'ai pas trouvé de solutions à mon problème !!
    Je veux dire que la ligne 18 ne tombe pas sur p_date:=sysdate();
    bien que la syntaxe est correcte et je l'ai utilisé autant de fois et fonctionne correctement.
    Le problème se trouve juste à la ligne d'après(selon le message d'erreur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into credit(cr_id,montant_total,taux_intr,duree_remb,cr_date,cr_type,rib,montant_mensuel) 
    values (p_crid,p_montant,p_taux,p_duree,p_date,p_type,p_rib,p_montant_mensuel);

  13. #13
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Votre probleme ne viendrait il pas d'un typage incorrect ?

    je vois dans la déclaration de vos variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    credit.mentant_mensuel%type;
    A voir !

    Bon courage

  14. #14
    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
    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Mea Culpa !
    +1

    Je ne savais pas qu'il y avait une fonction sysdate maintenant

  15. #15
    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
    Citation Envoyé par amirovisch Voir le message
    Je veux dire que la ligne 18 ne tombe pas sur p_date:=sysdate();
    bien que la syntaxe est correcte et je l'ai utilisé autant de fois et fonctionne correctement.
    Le problème se trouve juste à la ligne d'après(selon le message d'erreur)
    Si l'erreur était toujours là où c'est annoncé ce serait trop simple

    Je t'invite à épurer ton code et ajouter le reste partie par partie pour localiser l'erreur.

  16. #16
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par orafrance Voir le message
    Je ne savais pas qu'il y avait une fonction sysdate maintenant
    Ça date juste... de toujours ! Et c'est ignoré de pas mal de gens à cause de l'absence usuelle de parenthèses. (Et je ne parle pas du nombre de gens, même pratiquants d'Oracle depuis des années, qui sont incapables d'expliquer la logique de SELECT SYSDATE FROM DUAL).

    Moi je suis très favorable à l'usage des parenthèses vides, qui rendent très explicite la nature de l'objet, malheureusement comme elles ne sont pas valides en SQL, on ne peut pas en faire un usage consistant.

  17. #17
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Résolu mais aucun retour ...
    Ca serait interessant d'avoir une explication sur la résolution de votre probleme, elle permettra peut etre d'aider une autre personne dans le futur

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

Discussions similaires

  1. INSERT dans unr Procédure = SQL Statement ignored
    Par jonathan3357 dans le forum PL/SQL
    Réponses: 7
    Dernier message: 20/05/2009, 10h10
  2. [DB2 V8] SQL0901N the SQL statement failed
    Par dngaya dans le forum DB2
    Réponses: 1
    Dernier message: 05/10/2006, 06h17
  3. [VBA-A2003] Export d'un Recordset vers Excel, avec SQL statement
    Par Wanoo14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2006, 22h06
  4. Réponses: 5
    Dernier message: 18/04/2005, 12h38
  5. Error 124 : statement part too large
    Par cedchantrel dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 29/03/2005, 10h30

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