-
SQL*Plus en batch
Bonjour,
Dans un script csh sous linux, j'invoque sqlplus :
Code:
sqlplus -s 'ops$ope'/ipas0@IPAS_TST @CreateSImul.sql USER1 /tmp/creation.log
un erreur est détectée sur la connection à la base alors que si je ne mets qu'un paramètre au script sql :
Code:
sqlplus -s 'ops$ope'/ipas0@IPAS_TST @CreateSImul.sql USER1
tous se passe bien. Y a t'il une limitation sur le nbre de paramères avec cette syntaxe ?
Par ailleurs dans un script sql, la commande :
Code:
spool /tmp/&1_creation.log
comprend qu'il y a une variable &1_creation, alors que c'est &1. Comment isoler &1 du reste de la commande ?
Merci
-
Bonjour,
Pour la deuxième question, tentez de mettre votre nom de fichier entre quotes...
Pour la première, la doc (http://docs.oracle.com/cd/E11882_01/...2.htm#i2696724) précise bien qu'on peut utiliser deux paramètres...
Pourriez-vous montrer un peu plus votre script SQL ?
Cordialement,
Arkhena
-
Désolé, j'ai soumis un pb qui n'en était pas un, effectivement on peut avoir autant de paramètres que nécessaire. Le pb venait d'ailleurs ... et c'est résolu.
Par contre pour le nom de fichier de la commande SPOOL, si je fais :
Code:
SPOOL '/tmp/&1_creation.log'
le système me demande la valeur de &1_creation
si je fais :
Code:
SPOOL '/tmp/'&1'_creation.log'
j'ai l'erreur SP2-0768 illegal SPOOL command
si je fais :
Code:
SPOOL /tmp/'&1'_creation.log avec &1 qui vaut USER
j'obtiens le fichier /tmp/'USER'_creation.log (il y a des quotes dans le nom de fichier)
Donc je ne sais plus
Merci
-
Pour le nom du fichier, vous pouvez tenter :
Code:
SPOOL '/tmp/'||'&'||1_creation.log'
-
Pour le spool :
Code:
spool /tmp/&1._creation.log
-
Ah la blonde!
Je croyais que vous vouliez que le fichier s'appelle '/tmp/&1_creation.log'...
J'avais pas compris que &1 était une variable :oops:
-
Citation:
Envoyé par
ojo77
Pour le spool :
Code:
spool /tmp/&1._creation.log
Mais oui, c'est exactement ça (la syntaxe admise n'est pas courante).
Merci beaucoup