Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/05/2011, 13h46   #1
Invité de passage
 
Homme
Étudiant
Inscription : 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
Points : 1
Points : 1
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 :
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
amirovisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 10h14   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Serait-il possible d'avoir le message d'erreur complet ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 16h13   #3
Invité de passage
 
Homme
Étudiant
Inscription : 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
Points : 1
Points : 1
ERREUR à la ligne 18 : PL/SQL: SQL Statement ignored
Le problème c'est qu'il n'affiche pas le code de l'erreur !!
amirovisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 16h21   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
p_date:=sysdate();

est incorrect, s'il y a d'autres erreurs de syntaxe, je te laisse le soin de les trouver
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 24/05/2011, 16h27   #5
Membre du Club
 
Inscription : décembre 2010
Messages : 190
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 190
Points : 60
Points : 60
AbouZaid est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 24/05/2011, 16h59   #6
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 263
Points : 3 263
Citation:
Envoyé par orafrance Voir le message
p_date:=sysdate();
est incorrect
Ben qu'est-ce que tu reproches à cette ligne ??
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 17h01   #7
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
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
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 24/05/2011, 17h15   #8
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 263
Points : 3 263
Citation:
Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
Et alors ? Je ne vois toujours pas la queue d'une erreur dans la ligne incriminée.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/05/2011, 17h36   #9
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 434
Points : 10 434
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Bien vu Pomalaix, PL/SQL et SQL se comportent différemment ici :
Code :
1
2
3
4
SELECT sysdate() FROM dual;
 
Error at line 1
ORA-00923: mot-clé FROM absent à l'emplacement prévu
Code :
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
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 17h55   #10
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Mea Culpa !
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 17h58   #11
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 263
Points : 3 263
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 :
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 :
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à...
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 24/05/2011, 21h32   #12
Invité de passage
 
Homme
Étudiant
Inscription : 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
Points : 1
Points : 1
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 :
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);
amirovisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 09h21   #13
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
Votre probleme ne viendrait il pas d'un typage incorrect ?

je vois dans la déclaration de vos variables

Code :
credit.mentant_mensuel%type;
A voir !

Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/05/2011, 10h17   #14
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
Mea Culpa !
+1

Je ne savais pas qu'il y avait une fonction sysdate maintenant
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 10h19   #15
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 11h10   #16
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 263
Points : 3 263
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.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/05/2011, 09h20   #17
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
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
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h55.


 
 
 
 
Partenaires

Hébergement Web