• Ejecutar sentencia de Oracle con sqlplus directamente desde la cli de bash

    Si quieres ejecutar una sentencia sql de Oracle en la cli de bash pero no quieres tener que loguearte en sqlplus de forma interactiva, puedes hacerlo directamente en una única línea. La sintaxis sería esta:

    echo "sentencia;" | sqlplus usuario/contraseña

    Por ejemplo:

    echo "select * from clientes;" |  sqlplus pepe/12345678

    Esto es tan potente que incluso nos permitiría correr un bloque anónimo desde fuera de sqlplus, como por ejemplo este, donde permitimos las conexiones a Oracle Enterprise Manager XE desde otros hosts que no sean el localhost:

    echo -e "begin\nDBMS_XDB.SetListenerLocalAccess(false);\nend;\n/" | sqlplus -s "sys/Oracle0 as sysdba"

    NOTA: Si sólo quieres la salida de la sentencia, sin las líneas de información de Oracle, agrega -s al comando para que te quede de esta forma:

    echo "select * from clientes;" |  sqlplus -s pepe/12345678
    

     


    Deja una respuesta