J'utilise un script shell pour exécuter sql écrit dans des fichiers de script SQL. Dans les fichiers de script, certaines variables de liaison peuvent être transférées à partir de les paramètres d'exécution du shell.comment transférer des variables qui ont des espaces de shell à oracle sqlplus
Voici mon code.
result=`sqlplus -s ${DB_USER_NAME}/${DB_USER_PWD}@${DB_SID}<<!
SET HEADING ON
SET UNDERLINE OFF
SET COLSEP ','
WHENEVER SQLERROR EXIT 255
SET TRIM SPOOL ON
SPOOL $outputPath
@{sqlFilePath} [email protected]
#@${sqlFilePath} "[email protected]"
`
quand je lance le shell comme ceci:
run_sql.sh param1 param2 "param 3"
le @ $ sera expliqué param1, param2, param, 3 comme quatre vaiables
@{sqlFilePath} param1 param2 param 3
le « $ @ "sera expliqué à" param1 param2 param 3 "comme une variable
@{sqlFilePath} "param1 param2 param 3"
mais je veux que les paramètres seront expliqués comme cette
@{sqlFilePath} param1 param2 "param 3"
est-il un moyen de résoudre mon problème?
à DCookie: merci beaucoup! ça marche bien sur mon script. Je devrais trouver le détail de la double citation et de la citation unique. – tousinn
@ user966610: jetez un oeil à la page de bash man ici: http://www.gnu.org/software/bash/manual/bashref.html#Quoting – DCookie