Pagina 1 di 1
shell/sql su unix

Inviato:
07 gen 2005, 13:31
di fabuloso82
ciao a tutti...
sto facendo sotto linux una shell che ad un certo punto con sqlplus esegue un file sql che mi spoolla un file con dentro determinati dati,che sn esattamente una lista di comandi sql,in precisione unsa serie di drop table.il mio problema sta nel fatto che nn riesco a costruire una riga di codice da inserire o nella shell o nel file sql per far si che qnd viene generato il file finale vuoto(cè questa ipotesi)..nn venga eseguito dalla shell.avete qualche idea?

Inviato:
07 gen 2005, 13:55
di netvandal
se, come ho capito stai facendo uno script in bash per controllare se il file è vuoto o meno puoi usare questo pezzetto di codice:
- Codice: Seleziona tutto
if [ ! -s $file ]
print "$file è vuoto"
else
print "$file non è vuoto"
fi
ovviamente al posto delle print ci fai quello che ci devi fare..
era questo che ti serviva?

Inviato:
07 gen 2005, 14:20
di fabuloso82
diciamo che hai capito il mio prob,ma di sintassi nn ci sono,
sqlplus -s $INS @$PATH_SQL/a100/a100_spool_delete_tabelle.sql $FILE
if [[ $? != 0 ]]; then
echo "ERRORE: $PGM: a100_delete_tabelle_work.sql"
exit -1
fi
if [[ -s $PATH_SQL/a100/$NOME_FILE]]
sqlplus -s $INS @$PATH_SQL/a100/$NOME_FILE
if [[ $? != 0 ]]; then
echo "ERRORE: $PGM: a100_comandi_delete.sql"
exit -1
fi
fi
ho modificiato secondo il tuo if...allora nn mi funge....il secondo sqlplus lo deve eseguire solo se il file non è vuoto...ma nn funge..puoi prestarmi le modifiche tu?
poi come posso imparare queste cose?
grazie mille

Inviato:
07 gen 2005, 14:26
di fabuloso82
dimenticavo da quello che it ho incollato non compare l'else a metà..cmq cera ho sbagliato a fare un copia incolla

Inviato:
07 gen 2005, 15:08
di fabuloso82
ok ok grazie ce lo fatta...
- Codice: Seleziona tutto
sqlplus -s $INS @$PATH_SQL/a100/a100_spool_delete_tabelle.sql $FILE
if [[ $? != 0 ]]; then
echo "ERRORE: $PGM: a100_spool_delete_tabelle.sql"
exit -1
fi
echo "$creazione file comandi conclusa"
if [ -s $PATH_SQL/a100/$NOME_FILE ]; then
sqlplus -s $INS @$PATH_SQL/a100/$NOME_FILE
if [[ $? != 0 ]]; then
echo "ERRORE: $PGM: a100_comandi_delete.sql"
exit -1
fi
else
echo "$nessuna tabella da eliminare"
exit 0
fi
avevo una dimenticanza anche nell'sql,exit finale!!!!!che sbadato...grazie!!!!

Inviato:
07 gen 2005, 15:46
di netvandal
felice di esserti stato minimamente d'aiuto..
