Package sur oracle express 10g
Fermé
slimy
Messages postés
20
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
17 février 2010
-
13 janv. 2010 à 01:10
slimy Messages postés 20 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 17 février 2010 - 13 janv. 2010 à 18:40
slimy Messages postés 20 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 17 février 2010 - 13 janv. 2010 à 18:40
A voir également:
- Ora-00933: la commande sql ne se termine pas correctement
- Microsoft visual c++ 2019 redistributable package - Guide
- Ulead photo express - Télécharger - Retouche d'image
- Hitfilm express - Télécharger - Montage & Édition
- Telecharger nero express - Télécharger - Gravure
- Atk package - Forum Pilotes (drivers)
13 réponses
M2PG
Messages postés
512
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
30 décembre 2013
115
13 janv. 2010 à 01:23
13 janv. 2010 à 01:23
Espace entre la parenthese et le is peut etre !
on s'est mal compris
remplace
END MAJ_POSTE;
CREATE OR REPLACE PACKAGE BODY MAJ_POSTE is
par
END MAJ_POSTE;
/
CREATE OR REPLACE PACKAGE BODY MAJ_POSTE is
puis
end;
END MAJ_POSTE;
par
end;
/
END MAJ_POSTE;
remplace
END MAJ_POSTE;
CREATE OR REPLACE PACKAGE BODY MAJ_POSTE is
par
END MAJ_POSTE;
/
CREATE OR REPLACE PACKAGE BODY MAJ_POSTE is
puis
end;
END MAJ_POSTE;
par
end;
/
END MAJ_POSTE;
slimy
Messages postés
20
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
17 février 2010
1
13 janv. 2010 à 02:05
13 janv. 2010 à 02:05
je l'ai fait mais ça ne marche toujours pas....
Après ajout des /
ERREUR à la ligne 5 : PLS-00103: Symbole "/" rencontré
Après ajout des /
ERREUR à la ligne 5 : PLS-00103: Symbole "/" rencontré
Salut,
une réponse vite faite car j'ai pas trop de temps, là.
* avant d'envoyer tes packages et packages body, envoie donc un joli set echo on pour voir tes lignes de code numérotées et digérées l'une après l'autre par SQL*Plus. Si c'est trop long, envoie d'abord un spool nom_fichier.log pour stocker dans un fichier tout ce qui va s'afficher à l'écran (spool off pour l'arrêter). Ainsi tu sauras précisément à quelle ligne ton show errors fait référence.
* une fois que tu auras ajouté un point-virgule derrière le select into nbre1 et remplacé tes choix=... par choix := ... l'erreur en 11/2 tu auras peut-être un diagnostic différent.
* les "erreurs" affichées via put_line devraient faire l'objet d'exceptions. Il n'est pas dit que ton système n'évoluera pas et que donc, le logiciel qui utilisera tes procédures soit capable de récupérer les sorties par put_line.
une réponse vite faite car j'ai pas trop de temps, là.
* avant d'envoyer tes packages et packages body, envoie donc un joli set echo on pour voir tes lignes de code numérotées et digérées l'une après l'autre par SQL*Plus. Si c'est trop long, envoie d'abord un spool nom_fichier.log pour stocker dans un fichier tout ce qui va s'afficher à l'écran (spool off pour l'arrêter). Ainsi tu sauras précisément à quelle ligne ton show errors fait référence.
* une fois que tu auras ajouté un point-virgule derrière le select into nbre1 et remplacé tes choix=... par choix := ... l'erreur en 11/2 tu auras peut-être un diagnostic différent.
* les "erreurs" affichées via put_line devraient faire l'objet d'exceptions. Il n'est pas dit que ton système n'évoluera pas et que donc, le logiciel qui utilisera tes procédures soit capable de récupérer les sorties par put_line.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
slimy
Messages postés
20
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
17 février 2010
1
13 janv. 2010 à 01:30
13 janv. 2010 à 01:30
merci,
mais j'ai mis l'espace entre la parenthèse et le is cela ne marche pas la mm erreur encore..
mais j'ai mis l'espace entre la parenthèse et le is cela ne marche pas la mm erreur encore..
slimy
Messages postés
20
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
17 février 2010
1
13 janv. 2010 à 01:33
13 janv. 2010 à 01:33
ça ne marche toujours pas(dans oracle pas de slash)
il met comme erreur:
symbole"/" rencontré
c'est sur sql que cela passe...
il met comme erreur:
symbole"/" rencontré
c'est sur sql que cela passe...
je me suis replongé dans ma production de paquetages de l'époque (ça commence à dater)
les différences notables entre ce que j'avais et ce tu fais sont
1. j'utilisais AS et non pas IS à la suite de package ou package body (par contre, les types et les proc étaient bien déclarés avec IS)
2. j'avais 1 ligne vide entre la fin du package ou du package body et mon slash (mais je crois me rappeler que c'était à cause d'un bug de SQL*Plus)
pour le reste, j'ai pas trop d'idées...
les différences notables entre ce que j'avais et ce tu fais sont
1. j'utilisais AS et non pas IS à la suite de package ou package body (par contre, les types et les proc étaient bien déclarés avec IS)
2. j'avais 1 ligne vide entre la fin du package ou du package body et mon slash (mais je crois me rappeler que c'était à cause d'un bug de SQL*Plus)
pour le reste, j'ai pas trop d'idées...
re
je viens de tester dans une base 10g (10.2.0.1.0) avec SQL*Plus (Démarrer -> programmes -> Oracle xxx -> Exécuter la ligne de commande SQL)
- tes instructions create or replace sont dans un fichier slimy-pkg.sql
- j'ai créé une table POSTE et une séquence INC_CODE_POSTE
lorsque j'exécute le script avec SQL> @slimy-pkg, ça s'arrête sur la ligne 33 et ça attend que je tape quelque chose. si j'arrête la saisie (avec un .) et que je lance l'exécution de ce qui a été chargé, j'ai effectivement une erreur PLS-00103 en 6/1
mais si je rajoute un slash après chaque ligne END MAJ_POSTE; et que j'exécute le script, les deux instructions sont bien exécutées, le package et le package body sont créés sans erreur !
je viens de tester dans une base 10g (10.2.0.1.0) avec SQL*Plus (Démarrer -> programmes -> Oracle xxx -> Exécuter la ligne de commande SQL)
- tes instructions create or replace sont dans un fichier slimy-pkg.sql
- j'ai créé une table POSTE et une séquence INC_CODE_POSTE
lorsque j'exécute le script avec SQL> @slimy-pkg, ça s'arrête sur la ligne 33 et ça attend que je tape quelque chose. si j'arrête la saisie (avec un .) et que je lance l'exécution de ce qui a été chargé, j'ai effectivement une erreur PLS-00103 en 6/1
mais si je rajoute un slash après chaque ligne END MAJ_POSTE; et que j'exécute le script, les deux instructions sont bien exécutées, le package et le package body sont créés sans erreur !
slimy
Messages postés
20
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
17 février 2010
1
13 janv. 2010 à 10:19
13 janv. 2010 à 10:19
ok dans mon cas je suis sur oracle express 10g et je vois pas le probléme
Sur sql*plus ça marche mais sur oracle j'exécute mais ça continu à me mettre : symbole "create" ranconté
j'ai déjà passé tout le code en revue.............
Sur sql*plus ça marche mais sur oracle j'exécute mais ça continu à me mettre : symbole "create" ranconté
j'ai déjà passé tout le code en revue.............
euh...
la console d'oracle c'est SQL*Plus
il y a eu d'autres tentatives pour faire plus moderne, plus interactif, plus agréable (genre éditeur sympa) mais rien n'est jamais arrivé à la cheville de SQL*Plus.
C'est quoi l'oracle dont tu parles, celui avec lequel ton package est refusé ?
la console d'oracle c'est SQL*Plus
il y a eu d'autres tentatives pour faire plus moderne, plus interactif, plus agréable (genre éditeur sympa) mais rien n'est jamais arrivé à la cheville de SQL*Plus.
C'est quoi l'oracle dont tu parles, celui avec lequel ton package est refusé ?
slimy
Messages postés
20
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
17 février 2010
1
13 janv. 2010 à 16:18
13 janv. 2010 à 16:18
oui c'est une version d'essai d'oracle que l'on appelle oracle express. Mais tu as raison sql*plus est encore meilleur..bref maintenant c'est là que je bosse
mais il me mentionne encore des erreurs que je corrige depuis mais rien affaire les même erreurs apparaissent. I need help please
le code:
CREATE OR REPLACE PACKAGE MAJ_RESERVATION is
procedure P_INS_RESERVATION(MAT NUMBER, CODE_SOIRE NUMBER,ID_VILL NUMBER,MONTANT_CHEK NUMBER,VALID NUMBER,choix number);
procedure P_DEL_RESERVATION(CODE_RESER NUMBER);
end MAJ_RESERVATION;
/
CREATE OR REPLACE PACKAGE BODY MAJ_RESERVATION is
procedure P_INS_RESERVATION(MAT NUMBER, CODE_SOIRE NUMBER,ID_VILL NUMBER, MONTANT_CHEK NUMBER,VALID NUMBER, choix number)
is
paye number;
nbre number;
nbre1 number;
nbr number;
begin
select NOMBRE_PERS into nbre from FAMILLE F, SALARIES S where F.CODE_FAMILLE=S.CODE_FAMILLE;
select COUNT(*) into nbre1 from AVOIR A, ENFANT E, SALARIE S
Where A.NUM_ENFANT=E.NUM_ENFANT and S.MATRICULE=A.MATRICULE and AGE_ENFANT<15
paye:= nbre1*10+(nbre-nbre1)*15;
if( MAT is not null and CODE_SOIRE is not null and ID_VILL is not null and MONTANT_CHEK is not null and
VALID is not null and choix is not null ) then
if ( paye=MONTANT_CHEK and VALID=1) then
select count(*)into nbr from reservation where CODE_SOIREE=CODE_SOIRE and MATRICULE=MAT;
if (nbr=0) then
insert into RESERVATION values (INC_CODE_RESER.nextval,MAT,CODE_SOIRE ,I_VILL,
to_date(sysdate,'DD/MM/YYYY'),paye, VADID, choix );
end if;
if (nbr=1) then
choix=choix+1;
insert into RESERVATION values (INC_CODE_RESER.nextval,MAT,CODE_SOIRE ,I_VILL,
to_date(sysdate,'DD/MM/YYYY'),paye, VADID, choix );
end if;
if (nbr=2) then
choix=choix+1;
insert into RESERVATION values (INC_CODE_RESER.nextval,MAT,CODE_SOIRE ,I_VILL,
to_date(sysdate,'DD/MM/YYYY'),paye, VADID, choix );
end if;
if (nbr=3) then
DBMS_OUTPUT.PUT_LINE('vos choix de reservation epuisés');
end if;
end if;
end if;
if ( paye<> MONTANT_CHEK ) then
DBMS_OUTPUT.PUT_LINE('Montant inférieur à celui demandé pour la reservation'||':'||CODE_RESER||'du salarié'||MAT||'.');
end if;
end P_INS_RESERVATION;
procedure P_DEL_RESERVATION(CODE_RESER NUMBER)is
begin
DELETE FROM RESERVATION WHERE CODE_RESERVATION=CODE_RESER;
COMMIT;
DBMS_OUTPUT.PUT_LINE( To_char( SQL%ROWCOUNT ) || ' enregistrement(s) supprimé(s)') ;
end P_DEL_RESERVATION;
end MAJ_RESERVATION;
/
show errors;
depuis ça me met les même erreurs bien que que je change à chaque fois...
Package créé.
Avertissement : Corps de package créé avec erreurs de compilation.
Erreurs pour PACKAGE BODY MAJ_RESERVATION :
LINE/COL ERROR
-------- -----------------------------------------------------------------
11/2 PL/SQL: SQL Statement ignored
14/2 PL/SQL: ORA-00933: la commande SQL ne se termine pas correctement
26/24 PLS-00103: Symbole "=" rencontré à la place d'un des symboles
suivants :
:= . ( @ % ;
27/19 PLS-00103: Symbole "INSERT" rencontré
29/20 PLS-00103: Symbole "END" rencontré
mais il me mentionne encore des erreurs que je corrige depuis mais rien affaire les même erreurs apparaissent. I need help please
le code:
CREATE OR REPLACE PACKAGE MAJ_RESERVATION is
procedure P_INS_RESERVATION(MAT NUMBER, CODE_SOIRE NUMBER,ID_VILL NUMBER,MONTANT_CHEK NUMBER,VALID NUMBER,choix number);
procedure P_DEL_RESERVATION(CODE_RESER NUMBER);
end MAJ_RESERVATION;
/
CREATE OR REPLACE PACKAGE BODY MAJ_RESERVATION is
procedure P_INS_RESERVATION(MAT NUMBER, CODE_SOIRE NUMBER,ID_VILL NUMBER, MONTANT_CHEK NUMBER,VALID NUMBER, choix number)
is
paye number;
nbre number;
nbre1 number;
nbr number;
begin
select NOMBRE_PERS into nbre from FAMILLE F, SALARIES S where F.CODE_FAMILLE=S.CODE_FAMILLE;
select COUNT(*) into nbre1 from AVOIR A, ENFANT E, SALARIE S
Where A.NUM_ENFANT=E.NUM_ENFANT and S.MATRICULE=A.MATRICULE and AGE_ENFANT<15
paye:= nbre1*10+(nbre-nbre1)*15;
if( MAT is not null and CODE_SOIRE is not null and ID_VILL is not null and MONTANT_CHEK is not null and
VALID is not null and choix is not null ) then
if ( paye=MONTANT_CHEK and VALID=1) then
select count(*)into nbr from reservation where CODE_SOIREE=CODE_SOIRE and MATRICULE=MAT;
if (nbr=0) then
insert into RESERVATION values (INC_CODE_RESER.nextval,MAT,CODE_SOIRE ,I_VILL,
to_date(sysdate,'DD/MM/YYYY'),paye, VADID, choix );
end if;
if (nbr=1) then
choix=choix+1;
insert into RESERVATION values (INC_CODE_RESER.nextval,MAT,CODE_SOIRE ,I_VILL,
to_date(sysdate,'DD/MM/YYYY'),paye, VADID, choix );
end if;
if (nbr=2) then
choix=choix+1;
insert into RESERVATION values (INC_CODE_RESER.nextval,MAT,CODE_SOIRE ,I_VILL,
to_date(sysdate,'DD/MM/YYYY'),paye, VADID, choix );
end if;
if (nbr=3) then
DBMS_OUTPUT.PUT_LINE('vos choix de reservation epuisés');
end if;
end if;
end if;
if ( paye<> MONTANT_CHEK ) then
DBMS_OUTPUT.PUT_LINE('Montant inférieur à celui demandé pour la reservation'||':'||CODE_RESER||'du salarié'||MAT||'.');
end if;
end P_INS_RESERVATION;
procedure P_DEL_RESERVATION(CODE_RESER NUMBER)is
begin
DELETE FROM RESERVATION WHERE CODE_RESERVATION=CODE_RESER;
COMMIT;
DBMS_OUTPUT.PUT_LINE( To_char( SQL%ROWCOUNT ) || ' enregistrement(s) supprimé(s)') ;
end P_DEL_RESERVATION;
end MAJ_RESERVATION;
/
show errors;
depuis ça me met les même erreurs bien que que je change à chaque fois...
Package créé.
Avertissement : Corps de package créé avec erreurs de compilation.
Erreurs pour PACKAGE BODY MAJ_RESERVATION :
LINE/COL ERROR
-------- -----------------------------------------------------------------
11/2 PL/SQL: SQL Statement ignored
14/2 PL/SQL: ORA-00933: la commande SQL ne se termine pas correctement
26/24 PLS-00103: Symbole "=" rencontré à la place d'un des symboles
suivants :
:= . ( @ % ;
27/19 PLS-00103: Symbole "INSERT" rencontré
29/20 PLS-00103: Symbole "END" rencontré
slimy
Messages postés
20
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
17 février 2010
1
13 janv. 2010 à 18:40
13 janv. 2010 à 18:40
oui t'as raison
merci mais j'ai résolu le probléme(grâce à sql*plus)
merci pour tout fliu..
merci mais j'ai résolu le probléme(grâce à sql*plus)
merci pour tout fliu..