Rechercher : dans
Par :

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

Dernière réponse le 15 jan 2007 à 16:11:53 Trezeg, le 15 jan 2007 à 10:55:14 
 Signaler ce message aux modérateurs

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,

Configuration: SunOS 5.9

Meilleures réponses pour « [Unix] Insérer code SQL dans un script Unix » dans :
Code pour télécommande universelle VoirTélécommande universelle Philips Télécommande universelle Thomson ROC Télécommande universelle All for one Télécommande universelle Star Choice Télécommande universelle Marmitek Télécommande universelle Lifetec LT Télécommande universelle...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Implantation du code Php VoirL'interprétation du code par le serveur Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) incluses dans un code HTML à l'aide de balises spéciales et...
SQL - Jointures VoirExpression des jointures Une jointure (ou θ-jointure) est un produit cartésien de deux tables. On appelle équijointure une θ-jointure dont la qualification est une égalité entre deux colonnes. En SQL, l'expression d'une jointure se...

1

Trezeg, le 15 jan 2007 à 16:06:52

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+

Répondre à Trezeg

2

 Trezeg, le 15 jan 2007 à 16:11:53

Cf ci-dessus

Répondre à Trezeg
Collection CommentÇaMarche.net