bash - script - shell en oracle




Conéctese a sqlplus en un script de shell y ejecute scripts SQL (3)

¿No sería mejor algo parecido a esto en términos de seguridad ?:

sqlplus -s /nolog << EOF
CONNECT admin/password;

whenever sqlerror exit sql.sqlcode;
set echo off 
set heading off

@pl_script_1.sql
@pl_script_2.sql

exit;
EOF 

Tengo un archivo .sql, que es un grupo de comandos oracle pl / sql y quiero crear un script de shell para ejecutar estos comandos.

Supongamos que el user/[email protected] son mis credenciales. ¿Cuál será el script de shell para hacer tal tarea?


Esto debería manejar el problema:

  1. CUANDO SEA SALIDA DE SQLERROR SQL.SQLCODE
  2. SPOOL $ {SPOOL_FILE}
  3. $ RC devuelve el código de salida de oracle
  4. cat desde $ SPOOL_FILE explica error
SPOOL_FILE=${LOG_DIR}/${LOG_FILE_NAME}.spool 

SQLPLUS_OUTPUT=`sqlplus -s  "$SFDC_WE_CORE" <<EOF 
        SET HEAD OFF
        SET AUTOPRINT OFF
        SET TERMOUT OFF
        SET SERVEROUTPUT ON

        SPOOL  ${SPOOL_FILE} 

        WHENEVER SQLERROR EXIT SQL.SQLCODE
        DECLARE 

        BEGIN
           foooo 
        --rollback; 
        END;
    /
    EOF` 

RC=$?

if [[ $RC != 0 ]] ; then

    echo " RDBMS exit code : $RC  "     | tee -a ${LOG_FILE}
    cat ${SPOOL_FILE}                   | tee -a ${LOG_FILE}

    cat ${LOG_FILE} | mail -s "Script ${INIT_EXE} failed on $SFDC_ENV" $SUPPORT_LIST

    exit 3

fi

Si desea redirigir la salida a un archivo de registro para buscar errores o algo así. Puedes hacer algo como esto.

sqlplus -s <<EOF>> LOG_FILE_NAME user/[email protected]/db
#Your SQL code
EOF






sqlplus