spool /s3tosbs/reports/&_CONNECT_IDENTIFIER/USER/current_report.html
marche pas ... snif
Version imprimable
spool /s3tosbs/reports/&_CONNECT_IDENTIFIER/USER/current_report.html
marche pas ... snif
essaye directement dans sqlplus
Code:
1
2
3 SQL> spool /s3tosbs/reports/@/USER/current_report.html SP2-0606: Cannot create SPOOL file "/s3tosbs/reports/OEM/USER/current_report.html"
SQL> spool test.txt
SQL> spool off
SQL> spool /USER/spool.txt
SP2-0332: Cannot create spool file.
SQL> spool /&USER/spool.txt
Enter value for user: test
SQL> spool /&_User/spoo.txt
Enter value for _user: test
SQL> spool /@/spool.txt
SP2-0332: Cannot create spool file.
SQL> spool /&_connect_identifier/spool.txt
SP2-0332: Cannot create spool file.
SQL> def f=sbs/spool.txt
SQL> spool &f
SP2-0332: Cannot create spool file.
je n'ai ni windows ni 9i, alors je suis un peu à cours d'idées :-(
Je vais peut etre dire une bêtise, mais pourquoi tu ne passes pas par les paramètres standart &1 &2 etc....? comme ça tu controlerais tout depuis le dos en passant ce que tu veux à sqlplus en paramètre...
C'est pas bete Remi !
Le probleme c'est que je connais mal batch et sql.
tu veux dire que je fasse genre
c:\prout\prout.bat -pegaextqa2 -password -nom_de_la_db
et je pourrais recuperer les données en mettant dans le bat :
set user=&1
set pass=&2
set db=&3
-----------------
mais cela ne resoud pas le problem de la commande
sqlplus %user%/%pass%@%db% @importdata.sql
parce que je dois quand meme passer les variables user et db dans importdata.sql en faisant mon spool
spool /reports/variable db/ variable user/current_report.html
:king: ça me parait tout à fait bien comme solution... c'est même sans doute la meilleure ;)Citation:
Envoyé par remi4444
ouais mais dites moi alors comment je peux faire ca :
sqlplus %user%/%pass%@%db% @importData.sql ¶m1=%user% ¶m2=%db%
et ca marche pas !
je veux juste que importdata.sql gobbe deux variables !
des que je fais le code ci-dessus il y a toujours au moment de l'execution :
ENTER VALUE FOR PARAM1:
ENTER VALUE FOR PARAM2:
C pas croyable quand meme que sqlplus ne peut pas gobber deux variables qu'on passe en parametre apres la commande sqlplus
Il ne faut pas indiquer les noms des variables pour les paramètres que l'on passe au script SQL
de plus les paramètres doivent, dans le script SQL, être référencé par &n
ou n est la place du paramètre dans la liste des paramètres
Example
Code:
1
2
3
4
5
6
7
8
9
10
11 essai.sql contient select '&1'||'&2' from dual; sqlplus <chaine de connexion> @essai.sql toto gato ancien 1 : select '&1'||'&2' from dual nouveau 1 : select 'toto'||'gato' from dual 'TOTO'|| -------- totogato
Donc si je te suis bien ca va donner :
1 - je rajoute dans mon importdata.sql
spool reports/select '&2' from dual;/select '&1' from dual;/current_report.html
2 - dans mon fichier.bat je mets :
sqlplus %user%/%pass%@%db% @importdata.sql %user% %db%
plutot directement :
A condition que le répertoire reports/&2/&1 existeCode:
1
2 spool reports/&2/&1/current_report.html
Voir aussi la doc de référence http://download-uk.oracle.com/docs/c...h6.htm#1007220
Oui c'est trés simple, sqlplus fait une simple substitution de chaque paramètre que tu passe. Moi je généralement je passe carément le fichier à spooler, comme ça je controle les sortie depuis le programme appelant.
exemple de fichier sql:
et ton bat:Code:
1
2
3
4
5
6
7 spool &1 select '<HTML><BODY>patati;patata</BODY></HTML>' from dual; spool off exit
Code:
1
2sqlplus %user%/%pass%@%db% @patatitata.sql D:\chemin\rep\%db%\%user%\patatitata.html
Merci beaucoup à tous
Ca vient de marcher
j'ai tout automatisé et c'est vraiment nickel
Je vous en doit une, rv sur le forum LaTeX si vous avez un souci, je pourrais peut etre faire quelque chose :)