Tenho um script de shell que insere/atualiza dados em tabelas do Oracle. O que não entendo é que não há nada explícito COMMIT
no script, mas os dados são confirmados no banco de dados. Como isso é possível?
Verifiquei se o sqlplus autocommit
está desligado (conectando-me ao sqlplus e executando SHOW AUTOCOMMIT;
)
#! /bin/ksh
function Exec_Sql
{
echo === Executing sql:
echo === $sql_text
print "$sql_text;" | sqlplus -s / 2>&1 | grep -iE 'ora|error|sp2'
if [ ! $? -eq 0 ] #No error found
then
v_sqlerrm=""
return 0 #No Errors
else
v_sqlerrm="Contact Support - Check Log File"
return 1 #Error Found
fi
}
sql_text="UPDATE asr_test_tab SET f_ind = 'Y'"
if Exec_Sql; then
echo "=== Update SQL OK "
else
echo "=== Update SQL Failed "
fi
echo Complete: `date`
exit 0;