Posez votre question Signaler

[Unix] Insérer code SQL dans un script Unix [Résolu]

Trezeg 79Messages postés 20 décembre 2006Date d'inscription 3 octobre 2010Dernière intervention - Dernière réponse le 15 janv. 2007 à 16:11
Bonjour à tous,
J'aimerais savoir si il était possible d'insérer des lignes de requètes sql à l'intérieur d'un shell unix.
J'ai un batch à traduire en shell unix et je ne sais pas si je peux transposer le passage sql tel quel.
Voici mon batch :
echo set heading off>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo set space 1 >>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo set newpage none>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo set flush off>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo set feed off>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo set echo off>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo set verify off>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo set underline off>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo set linesize 100>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo spool %SQL4OUT_PROC_ROOT%%PAR4OUT_FILE%%PAR_EXT%>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo select rtrim(PARA_GRP)^|^|'.'^|^|rtrim(PARA_EXT)^|^|'.'^|^|PARA_PID^|^|'.'^|^|rtrim(PARA_TYP)^|^|'.'^|^|rtrim(NOM_FICH)^|^|'.'^|^|to_char(sysdate,'YMMDD')^|^|'000000.' from BATITF>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo where CODE = '%1'>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo and TRAI = 'N'>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo -- and TYPE = 3>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo order by DATETRAI, NOM_FICH;>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo spool off>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo update BATITF set TRAI = 'O', DATETRAI = sysdate where TRAI = 'N' and DATETRAI is null and CODE = '%1' ;>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo commit;>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
echo exit;>>%SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
REM LOG
echo %SQL4OUT_PROC_ROOT%%SQL4OUT_FILE%%SQL_EXT%
Merci de votre aide.
Cordialement,
Lire la suite 

[Unix] Insérer code SQL dans un script Unix »

2 réponses
Réponse
+0
moins plus
Re-Bonjour,
J'ai trouvé la solution à mon problème ;-)))
Il suffit de mettre des " là où il faut et on arrive à faire générer un ficher sql à notre shell :

echo set heading off>>${SQL4OUT_DIR}sql4out.sql
echo set space 1 >>${SQL4OUT_DIR}sql4out.sql
echo set newpage none>>${SQL4OUT_DIR}sql4out.sql
echo set flush off>>${SQL4OUT_DIR}sql4out.sql
echo set feed off>>${SQL4OUT_DIR}sql4out.sql
echo set echo off>>${SQL4OUT_DIR}sql4out.sql
echo set verify off>>${SQL4OUT_DIR}sql4out.sql
echo set underline off>>${SQL4OUT_DIR}sql4out.sql
echo set linesize 100>>${SQL4OUT_DIR}sql4out.sql

echo spool ${SQL4OUT_DIR}par4out.par>>${SQL4OUT_DIR}sql4out.sql
echo "select rtrim(PARA_GRP)||'.'||rtrim(PARA_EXT)||'.'||PARA_PID||'.'||rtrim(PARA_TYP)||'.'||rtrim(NOM_FICH)||'.'||to_char(sysdate,'YMMDD')||'000000.' from BATITF">>${SQL4OUT_DIR}sql4out.sql
echo where CODE = '%1'>>${SQL4OUT_DIR}sql4out.sql
echo and TRAI = "'N'">>${SQL4OUT_DIR}sql4out.sql
echo "order by DATETRAI, NOM_FICH;">>${SQL4OUT_DIR}sql4out.sql

echo spool off>>${SQL4OUT_DIR}sql4out.sql

echo "update BATITF set TRAI = 'O', DATETRAI = sysdate where TRAI = 'N' and DATETRAI is null and CODE = '%1' ;">>${SQL4OUT_DIR}sql4out.sql
echo "commit;">>${SQL4OUT_DIR}sql4out.sql
echo "exit;">>${SQL4OUT_DIR}sql4out.sql

Voilou.
A+
Ajouter un commentaire
Réponse
+0
moins plus
cf ci-dessus
Ajouter un commentaire
Ce document intitulé « [Unix] Insérer code SQL dans un script Unix » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?