while IFS=# read -r process_id source destination type
do
echo "Process id: $process_id"
echo "Source: $source"
echo "Destination: $destination"
case "$type" in
2)
echo "Type is outbound: $type"
contact=$(sqlplus -s ${SQLPLUS_INFO} <<EOF
SET PAGESIZE 0
SELECT email FROM table WHERE partner = '${destination}';
exit
EOF
)
echo
echo ${contact}
echo
;;
Salut à tous,Comment puis-je transmettre une variable à une requête dans un script shell?
Basé dans le code ci-dessus, comment puis-je passer la valeur de destination $ à la requête? L'exemple ci-dessus ne fonctionne pas, même les autres:
SELECT email FROM table WHERE partner = '"${destination}"';
SELECT email FROM table WHERE partner = '$destination';
Toute aide vous sera utile! Merci!
supprime les 'contact = $ (' et ')' juste pour voir si c'est la source du problème. Je m'attendrais à ce que cela fonctionne tel quel, mais la substitution de commandes ('$ (...)') pourrait être un problème. Bonne chance. – shellter
Comme idée séparée, ajoutez 'destination d'exportation' avant d'appeler' contact = $ (....) '. Bonne chance. – shellter
contact = sqlplus -s $ {SQLPLUS_INFO} << EOF SET PAGESIZE 0 SELECT email à partir de la table WHERE partner = '$ {destination}'; sortie EOF ne fonctionnait pas bien, il est revenu: ligne 73: erreur de syntaxe: fin de fichier inattendue Tout en utilisant le() ne fonctionne pas aussi bien, retour: erreur de syntaxe près de jeton inattendu ' << ' . . PS: L'export ne fonctionnait pas non plus @shellter, @Emmanuel –