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 06/02/2007, 14h40   #1
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
Par défaut effectuer du pl/sql intéractif

Bonjour,

J'ai lu dans des documentations qu'il était impossible de faire du pl/sql intéractif. Cependant, j'ai pu apercevoir dans des posts antérieurs des moyens d'en faire.
Je me suis inspiré de ces posts afin de faire une procédure avec des prompt à l'intérieur :
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE  modifier_entorg
   ( entorg_old  IN  organigramme%TYPE,
   	 entorg_new IN organigramme%TYPE
   )
	IS
 
	ent pers_orga_fonc.ENTORG%TYPE;
	v_ent pers_orga_fonc.ENTORG%TYPE;
	v_codagt pers_orga_fonc.CODAGT%TYPE;
	v_coord pers_com.COORDONNEES%TYPE;
	err_num NUMBER:=0;
	err_msg varchar(1000);
 
 
	BEGIN
 
		dbms_output.enable(200000);
 
 
	ACCEPT entorg_old PROMPT 'Saisir ancien entorg : '
 
 
 
	DECLARE
		ent pers_orga_fonc.ENTORG%TYPE;
		ent := &entorg_old
 
	Cursor c_curs IS
	SELECT  pof.CODAGT, pof.ENTORG, pof.coordonnees
	FROM pers_orga_fonc pof, personne p, pers_com pc, communication c
	WHERE pof.CODAGT=p.CODAGT
	AND pof.CODCOL_AGENT=p.CODCOL_AGENT
	AND p.CODAGT=pc.CODAGT
	AND p.CODCOL_AGENT=pc.CODCOL_AGENT
	AND pc.COORDONNEES=c.COORDONNEES
	AND pof.ENTORG='''||ent||'''; 
 
	Open c_curs;
	Loop
		Fetch c_curs INTO v_codagt, v_ent, v_coord;
		dbms_output.putline(v_codagt);
	End Loop;
 
	exception  
	when others then
		err_num := SQLCODE;
		err_msg := SUBSTR(SQLERRM, 1, 1000);
		dbms_output.put_line('Err num = ' || to_char(err_num) );
		dbms_output.put_line('Err msg = ' || err_msg );
 
	End; 
 
END modifier_entorg;
/
Je reçois un message d'erreur me stipulant que ma procédure a été créée avec des erreurs de compilation, cependant, je n'ai pas d'affichage des messages d'erreurs.

Quelqu'un aurait une idée ?

Merci

ps : pour info voici le lien que j'ai utilisé.
http://www.developpez.net/forums/sho...=prompt+accept
__________________
Nulla dies sin linea
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 14h47   #2
Membre du Club
 
Inscription : août 2004
Messages : 36
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France

Informations forums :
Inscription : août 2004
Messages : 36
Points : 41
Points : 41
bonjour,
une fois ta procédure compilée, tu fais simplement un
show errors

Bonne journée
iron_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 14h55   #3
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
Code :
ACCEPT entorg_old PROMPT 'Saisir ancien entorg : '
ce n'est pas du PLSQL ça
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 15h02   #4
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 illegalsene
J'ai lu dans des documentations qu'il était impossible de faire du pl/sql intéractif. Cependant, j'ai pu apercevoir dans des posts antérieurs des moyens d'en faire.
Oui, il est impossible à proprement dit de faire du PL/SQL intéractif.

Après, il existe des commandes SQL*Plus qui permette de créer une intéractivité (accept, prompt), mais elles ne peuvent pas être intégrées dans du PL/SQL.
__________________
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 06/02/2007, 15h04   #5
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
ok.

Donc si j'ai bien compris mon bloc accept prompt doit être sorti du bloc pl/sql ?
__________________
Nulla dies sin linea
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 15h18   #6
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
oui, c'est ça. PLSQL n'est pas interactif, SQLPLUS oui. Si tu n'employes pas sqlplus. alors pas de ACCEPT ni de PROMPT
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 15h20   #7
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
justement j'emploie sqlplus
__________________
Nulla dies sin linea
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 15h44   #8
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
Dans ce cas il faut faire un script du style :
Code :
1
2
3
4
5
accept maVar prompt "Valeur de la variable maVar : "
begin
   dbms_output.put_line ('&maVar');
end;
/
__________________
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
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web