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 10/01/2008, 17h36   #1
Membre habitué
 
Inscription : mars 2002
Messages : 560
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 560
Points : 107
Points : 107
Par défaut Tester une procédure stockée renvoyant un curseur

Bonjour,

Je cherche à tester une procédure stockée via un client SQL TOAD en l'occurrence.

Le problème c'est que ce code ne me renvoie rien du tout :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
DECLARE ps_cur sys_refcursor;
 
auth SCHEMA.AUTHENTIFICATION%ROWTYPE;
BEGIN
 
ps_select_test(ps_cur);
 
LOOP
	FETCH ps_cur INTO auth;
	EXIT WHEN ps_cur%NOTFOUND;
	dbms_output.put_line(auth.COMMENTAIRE);
END LOOP;
 
CLOSE ps_cur;
END;
Dans la procédure stockée je fais un SELECT * FROM AUTHENTIFICATION.

En résultat, je ne souhaite qu'afficher que la colonne COMMENTAIRE de ma table AUTHENTIFICATION. Par contre, en exécutant cette procédure via mon client TOAD, je n'obtiens rien en retour.

Comment cela se fait-il ?

Merci pour toute info complémentaire.
david71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 09h30   #2
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
As-tu activé dbms output ?
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 09h32   #3
Membre habitué
 
Inscription : mars 2002
Messages : 560
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 560
Points : 107
Points : 107
Merci pour ta réponse.

Non, comment je fais pour l'activer ?
david71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 09h43   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
dans sql*plus
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 10h42   #5
Membre habitué
 
Inscription : mars 2002
Messages : 560
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 560
Points : 107
Points : 107
Par rapport au code ci-dessus, où je dois placer cette instruction ?

J'obtiens l'erreur "ORA-00922 missing or invalide operation" lorsque je place cela à ce niveau :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
SET dbms_output ON;
DECLARE ps_cur sys_refcursor;
 
auth SCHEMA.AUTHENTIFICATION%ROWTYPE;
BEGIN
 
ps_select_test(ps_cur);
 
LOOP
	FETCH ps_cur INTO auth;
	EXIT WHEN ps_cur%NOTFOUND;
	dbms_output.put_line(auth.COMMENTAIRE);
END LOOP;
 
CLOSE ps_cur;
END;
Faut-il déclarer la variable "dbms_output" quelque part ?
Merci d'avance.
david71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 10h52   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
remplace :
par :

par ailleurs, pour déclarer un curseur il faut y mettre une requête et si tu as un paramètre il faut aussi le déclarer dans le curseur... revois le tutoriel PL/SQL avant de continuer
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 14h34   #7
Membre habitué
 
Inscription : mars 2002
Messages : 560
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 560
Points : 107
Points : 107
Merci pour ta réponse mais ne donne rien mais la même erreur :
"ORA-00922 missing or invalide operation"

Enfin, ma procédure ne renvoie qu'un seul paramètre en sortie, un curseur en l'occurrence donc je n'ai qu'un curseur à déclarer en sortie.
david71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 16h14   #8
Membre à l'essai
 
Inscription : mars 2007
Messages : 59
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 59
Points : 24
Points : 24
Si c'est dans toad, va ds le menu view->dbms_output et tu l'actives.
Ujitsu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 16h28   #9
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
evidemment si t'as corrigé que ça, ça marchera pas mieux

recherche sys_refcursor dans le forum pour comprendre ton erreur
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 11h34   #10
Membre habitué
 
Inscription : mars 2002
Messages : 560
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 560
Points : 107
Points : 107
Oui effectivement c'est dans l'onglet "dbms_output", je n'ai pas l'habitude de TOAD.

Merci.
david71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2008, 17h40   #11
Invité de passage
 
Inscription : août 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 3
Points : 3
Points : 3
Bonjour,

Désolé si je ne poste pas au bon endroit mais je n'ai pas trouvé mieu.

Je débute en PL/SQL et j'ai un petit problème...

Je voudrais afficher quelque chose suite à une requéte mais cela me ressort une erreur

Code :
1
2
3
4
5
6
7
8
 
SET SERVEROUTPUT ON
BEGIN
 
	DBMS_OUTPUT.PUT_LINE('A = ');
 
 
END;
Je pense que je n'ai pas le package mais je ne sais pas comment l'installer.

Pour info je travail sous la version oracle Database 10g express edition.

Merci d'avance
macpie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2008, 09h34   #12
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par macpie Voir le message
Je voudrais afficher quelque chose suite à une requéte mais cela me ressort une erreur
Le but du jeu c'est qu'on devine de quelle erreur il s'agit ?
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2008, 10h32   #13
Invité de passage
 
Inscription : août 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 3
Points : 3
Points : 3
Désolé voici l'erreur:

ORA-06550: Ligne 3, colonne 5 : PL/SQL: ORA-00922: option erronée ou absente ORA-06550: Ligne 3, colonne 1 : PL/SQL: SQL Statement ignored ORA-06550: Ligne 10, colonne 1 : PLS-00103: Symbole "END" rencontré à la place d'un des symboles suivants : begin function package pragma procedure form
macpie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2008, 10h34   #14
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Tu exécutes ton code à partir de quel outil ? SQL*Plus ?
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2008, 12h50   #15
Invité de passage
 
Inscription : août 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 3
Points : 3
Points : 3
Oui, mais j'ai trouvé la solution d'envoyer les données dans une table tamporaire et d'afficher la table.

Merci à vous
macpie 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 17h36.


 
 
 
 
Partenaires

Hébergement Web