script ejecutar consola bash shell sqlplus

bash - ejecutar - Conéctese a sqlplus en un script de shell y ejecute scripts SQL



ejecutar script oracle consola (4)

¿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/pass@server 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


Por ejemplo:

sqlplus -s admin/password << EOF whenever sqlerror exit sql.sqlcode; set echo off set heading off @pl_script_1.sql @pl_script_2.sql exit; EOF


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/passwd@host/db #Your SQL code EOF