[Unix] Insérer code SQL dans un script Unix
Résolu
Trezeg
Messages postés
81
Statut
Membre
-
Trezeg Messages postés 81 Statut Membre -
Trezeg Messages postés 81 Statut Membre -
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,
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,
A voir également:
- [Unix] Insérer code SQL dans un script Unix
- Code ascii - Guide
- Insérer vidéo dans powerpoint - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Insérer signature word - Guide
- Insérer un espace insécable dans word - Guide
2 réponses
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+
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+