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 04/10/2006, 10h57   #1
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 56
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 56
Points : 18
Points : 18
Par défaut script .sql (sql, pl/sql, sqlplus)

Bonjour,

J'utilise oracle8i comme SGBD et sqlplus comme client pour exécuter des scripts (contenus dans des fichiers portant l'extension .sql)

J'exécute le script test1.sql ds sqlplus: @test1.sql
Voici mon petit problème: Je voudrais pouvoir suivant un choix qu'un utilisateur rentre exécuter 2 scripts. Ces 2 scripts contiennent une série de commande sql et pl/sql(création de tables, séquences et procédures).

Question 1: Est-il possible de tester ma variable varChoix hors d'une procédure?
ou
Question 2: Peut-on appeler les deux scripts à l'intérieur de la procédure?
Si oui comment ou sinon cmt peut-on gérer cela?

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
 
--file: test1.sql
 
spool fichier.log
 
 
ACCEPT varChoix CHAR PROMPT 'Votre choix (O/N):';
 
 
DECLARE 
 choix CHAR := 'N';
BEGIN
	choix := '&varChoix';
	IF choix = 'O' THEN
	  --exécute script1 et script2	
	END IF;
END;
/
 
 
--script1et2 contiennent des procédures et du code sql
--@@SCRIPT1
--@@SCRIPT2
 
 
spool off
Merci d'avance.
Sam
persam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 11h44   #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
Solution 1
Code :
1
2
3
4
5
6
7
8
9
ACCEPT varChoix CHAR PROMPT 'Votre choix (O/N):';
SET head off
SET feed off
spool exec_script.sql
SELECT '@test1' || chr(10) || '@test2'
FROM dual
WHERE '&varChoix' = 'O';
spool off
@exec_script
Solution 2 :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
spool fichier.log
ACCEPT varChoix CHAR PROMPT 'Votre choix (O/N):';
DECLARE 
 choix CHAR := 'N';
BEGIN
	choix := '&varChoix';
	IF choix = 'O' THEN
	    host ('sqlplus usr/pwd@mabase @test1.sql');
	    host ('sqlplus usr/pwd@mabase @test2.sql');
	END IF;
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
Vieux 04/10/2006, 13h35   #3
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 56
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 56
Points : 18
Points : 18
Oki
Merci bien pour ta réponse.
persam 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 22h41.


 
 
 
 
Partenaires

Hébergement Web