Bonjour,
Je dois lancer la même requête SQL pour plusieurs variables.
J'ai donc créer un fichier de parametre : param.txt
Contenu de param.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Valeur1; Valeur2 mais contenant des espaces; valeur3 pouvant aussi contenir des espaces
Mon batch est le suivant
Le contenu de GetData.sql est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 FOR /F "tokens=1 delims=;" %%i IN (param.txt DO @sqlplus user/pwd@base @GetData.sql ; Result_%%i.csv %%i
Forcément cela plante pour la valeur : Valeur2 mais contenant des espaces
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 WHENEVER SQLERROR EXIT 1 WHENEVER OSERROR EXIT 2 SET TERMOUT OFF SET SPACE 0 SET LINES 300 SET PAGES 0 SET ECHO OFF SET FEEDBACK OFF SET HEADING OFF SET TRIMSPOOL ON SET VERIFY OFF SET DEFINE OFF spool &2 PROMPT "Applet"&1"Applet"&1"Item No"&1"Visibility Applet"&1 select webitem.applet_name ||'&1'|| v.NAME ||'&1'|| webitem.ITEM_NUM ||'&1'|| webitem.APPLET_VIS_TYPE ||'&1' from S_VIEW_WTMPL_IT webitem , S_VIEW_WEB_TMPL web , S_VIEW v , S_REPOSITORY rep where rep.name = 'Siebel Repository' and rep.row_id = v.repository_id and webitem.VIEW_WEB_TMPL_ID = web.row_id and web.view_id = v.row_id and webitem.INACTIVE_FLG = 'N' and web.INACTIVE_FLG = 'N' and v.INACTIVE_FLG = 'N' and webitem.applet_name = '&3' / spool off / exit;
Auriez vous une idée comment passer le paramètre contenant des espaces ?
Ou bien existe un moyen d'utiliser une variable d'environnement dans SQLPLUS ?
D'avance merci pour votre aide.
Uyên Minh
Partager