Bonjour à tous,
je voudrais construire un fichier de commandes sql à partir de mon script shell.
le fichier qui contient la liste des input est listms.
quand j'interroge la base de données de manière normale, j'exécute la commande suivante pour avoir le champ date:
select TO_DATE('01-JAN-1970','DD-MON-YYYY')+ACTIVBDT/86400 from ..... where .......;
le résultat de cette commande est la valeur du paramètre ACTIVBDT sous format "date" normal, donc il faut passer par cette conversion.
le problème en lui même n'est pas là.
le truc c'est que quand il copie la commande dans le fichier sqlquery, il la copie sans mettre les quotes suivantes: '01-JAN-1970','DD-MON-YYYY'
donc en éxécutant la commande (le fichier sqlquery que j'utilise par la suite pour l'éxécution), ça me retourne une erreur...ce qui est normal, puisque la syntaxe est erronée...
je ne comprends pas ce qu'il se passe...
Avez vous une idée sur ce problème?
Je vous remercie d'avance.
voilà la partie conernée de mon script:
-----------------------------------------------------------------
echo "== Creating SQL command file =="
cat > sqlquery.$$ << __EOF__
set echo off;
set heading off;
spool sqlres.$$;
__EOF__
cat listms | awk '{printf("select TO_DATE('01-JAN-1970','DD-MON-YYYY')+ACTIVBDT/86400 from table where iden_nbr='"'"'%s'"'"';\n",$1)}' >> sqlquery.$$
echo "spool off;" >> sqlquery.$$
echo "exit;" >> sqlquery.$$
echo "== Executing SQL command file =="
Partager