shell/sql su unix

Discuti dei problemi relativi alla programmazione nel tuo linguaggio preferito!

Moderatori: cb_123, thrantir, tonertemplum

shell/sql su unix

Messaggiodi fabuloso82 il 07 gen 2005, 13:31

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?
fabuloso82
Cittadino onorario
Cittadino onorario
 
Messaggi: 205
Iscritto il: 15 ott 2003, 11:32

 

Messaggiodi netvandal il 07 gen 2005, 13:55

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?
nEtVaNDaL
AMD Planet Admin
Michele Tameni
Avatar utente
netvandal
Site Admin
Site Admin
 
Messaggi: 1248
Iscritto il: 22 dic 2001, 15:50

Messaggiodi fabuloso82 il 07 gen 2005, 14:20

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
fabuloso82
Cittadino onorario
Cittadino onorario
 
Messaggi: 205
Iscritto il: 15 ott 2003, 11:32

Messaggiodi fabuloso82 il 07 gen 2005, 14:26

dimenticavo da quello che it ho incollato non compare l'else a metà..cmq cera ho sbagliato a fare un copia incolla
fabuloso82
Cittadino onorario
Cittadino onorario
 
Messaggi: 205
Iscritto il: 15 ott 2003, 11:32

Messaggiodi fabuloso82 il 07 gen 2005, 15:08

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!!!!
fabuloso82
Cittadino onorario
Cittadino onorario
 
Messaggi: 205
Iscritto il: 15 ott 2003, 11:32

Messaggiodi netvandal il 07 gen 2005, 15:46

felice di esserti stato minimamente d'aiuto..:)
nEtVaNDaL
AMD Planet Admin
Michele Tameni
Avatar utente
netvandal
Site Admin
Site Admin
 
Messaggi: 1248
Iscritto il: 22 dic 2001, 15:50


Torna a Programmare

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron