Variables dans un .sql exécuté par sqlplus
Bonjour,
Je voudrais savoir si on peut, dans un fichier .sql exécuté par SLQPLUS, utiliser des boucles, des variables, etc ?
Je m'explique. Disons que j'ai ça par exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| set heading off
set pagesize 0
set verify off
set linesize 245
spool c:\base_01.txt
select [blabla]
from
(
SELECT [blabla]
FROM [blabla]
WHERE [blabla] LIKE '01%'
GROUP BY [blabla]
);
spool off |
Or j'ai 99 fichiers base texte à créer (de base_01.txt à base_99.txt), et le LIKE 'XX%' doit varier lui aussi de '01' à '99'. Il me faudrait donc lancer 99 fois ce script en changeant à la main les lignes 6 et 13 mais je cherche une solution un peu moins... disons fastidieuse !
Merci de votre aide.
Re: Variables dans un .sql exécuté par sqlplus
éventuellement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
script1.sql
set head off pages 0 ver off lin 245
spool base_&1..txt
select [blabla]
from
(
SELECT [blabla]
FROM [blabla]
WHERE [blabla] LIKE '&1%'
GROUP BY [blabla]
);
spool off
script2.sql
@script1 01
@script1 02
@script1 03
...
@script1 99 |
ou tu peux écrire un fichier .BAT sous dos
Re: Variables dans un .sql exécuté par sqlplus
Citation:
Envoyé par laurentschneider
éventuellement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
script1.sql
set head off pages 0 ver off lin 245
spool base_&1..txt
select [blabla]
from
(
SELECT [blabla]
FROM [blabla]
WHERE [blabla] LIKE '&1%'
GROUP BY [blabla]
);
spool off
script2.sql
@script1 01
@script1 02
@script1 03
...
@script1 99 |
Je maîtrise très peu les batch et PL/SQL. N'ayant pas trop de temps, je trouve cette solution simple et efficace :)
Merci à vous deux sygale (désolé de ne pas investiguer plus loin dans le développement que tu as proposé) et laurentschneider !
PS si quelqu'un a le temps : dans le code cité ci-dessus, pourquoi "spool base_&1..txt" créé un fichier nommé "base_15.txt" (avec &1 = 15) et non pas "base_15..txt" ? C'est le passage de paramètre qui "mange" le point en double avant le "txt" ?
Re: Variables dans un .sql exécuté par sqlplus
Citation:
Envoyé par ekke
PS si quelqu'un a le temps : dans le code cité ci-dessus, pourquoi "spool base_&1..txt" créé un fichier nommé "base_15.txt" (avec &1 = 15) et non pas "base_15..txt" ? C'est le passage de paramètre qui "mange" le point en double avant le "txt" ?
Avec
Code:
1 2
|
spool c:\base_&MY_NUM..txt |
Euh ca met "base_15..txt" moi :? :roll:
Ah oui le caractère de concaténation par défault sous SQL*PLUS est le "."
D'ou l'utilisation de
dans mon exemple, avec l'habitude on oubli des trucs :wink:
C'est pas grave pense à Résolu