Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Ejecutar SQL y mostrar resultado comando Oracle en Linux
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Ejecutar SQL y mostrar resultado comando Oracle en Linux

Publicar nuevo tema Responder al tema
Foros de discusión » Oracle Database, motor de base de datos profesional   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Ejecutar SQL y mostrar resultado comando Oracle en Linux Responder citando

Hola, tengo un servidor con Oracle 10g, tiene Linux Fedora sin modo gráfico. Lo que quisiera es comprobar el estado de la base de datos con un comando, de forma que ejecutando un comando me devuelva si está OPEN (select status from v$instance).

Lo que quiero es ejecutar la consulta SQL:

Código:

select status from v$instance


Y que solo me devuelva el OPEN (o el estado en el que esté Oracle), no quiero que me devuelva nada más, ni el nombre de la columna ni nada y necesito que se ejecute de forma automática, es decir, un script que se ejecute y devuelva ese OPEN por la línea de comandos.
MensajePublicado:
Lun Ene 26, 2015 1:12 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Ejecutar SQL y mostrar resultado comando Oracle en Linux Responder citando



Anuncios



Entendemos que lo que quieres básicamente es ponder ejecutar una consulta SQL contra el servidor Oracle desde la línea de comandos sin tener que introducir usuario, contraseña ni nada y que muestre el resultado en la propia línea de comandos.

Para esto, puedes crear un script con:

Código:

nano /tmp/ejecutar_sql.sh


(puedes usar nano o cualquier otro editor como vi), cambia "/tmp/ejecutar_sql.sh" por la ruta y nombre del script que generarás.

Añade lo siguiente al fichero:

echo "set feedback off verify off heading off pagesize 0
select status from v\$instance;
exit" | $ORACLE_HOME/bin/sqlplus -s usuario/contraseña | while read output;
do
echo $output
done


Ten en cuenta lo siguiente:

1. En la línea select status from v\$instance; hay una barra invertida antes del $, es necesaria en un script para que Linux no tome el $ como el inicio de una variable.
2. Puedes cambiar la consulta SQL select status from v\$instance; por la que quieras, obviamente debería devolver solo un registro y solo el valor del campo de un registro.
3. En la línea exit" | $ORACLE_HOME/bin/sqlplus -s usuario/contraseña | while read output; cambiaremos usuario/contraseña por el usuario y contraseña de tu base de datos Oracle.
4. El script funcionará si tienes la variable de entorno $ORACLE_HOME correctamente configurada en el bash del usuario con el que lo ejecutes.


Guarda los cambios en el fichero (en nano pulsando Control + O) y cierra la edición (en nano pulsando Control + X").

Por último debes convertir el fichero de script en ejecutable, para ello ejecuta el siguiente comando:

Código:

chmod a+x /tmp/ejecutar_sql.sh


Ahora ya podrás probarlo, para ejecutarlo:

Código:

./tmp/ejecutar_sql.sh


Si todo es correcto, en el caso de la consulta SQL del ejemplo que te hemos puesto, solo devolverá: OPEN.
MensajePublicado:
Lun Ene 26, 2015 1:23 pm
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: [RESUELTO] Ejecutar SQL resultado comando Oracle Linux Responder citando



Anuncios



alonsojpd escribió:

echo "set feedback off verify off heading off pagesize 0
select status from v\$instance;
exit" | $ORACLE_HOME/bin/sqlplus -s usuario/contraseña | while read output;
do
echo $output
done



Genial, me funciona perfecto, es lo que quería, ejecuta la consulta SQL y me devuelve el valor por la línea de comandos, así puedo monitorizar el estado de Oracle de forma fácil.

Una pequeña cuestión más, si en vez de escribir el usuario y la contraseña de Oracle en el Script quisiera que el script me lo solicitara se podría hacer?
MensajePublicado:
Lun Ene 26, 2015 1:27 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: [RESUELTO] Ejecutar SQL resultado comando Oracle Linux Responder citando



Anuncios



varios escribió:
Genial, me funciona perfecto, es lo que quería, ejecuta la consulta SQL y me devuelve el valor por la línea de comandos, así puedo monitorizar el estado de Oracle de forma fácil.

Una pequeña cuestión más, si en vez de escribir el usuario y la contraseña de Oracle en el Script quisiera que el script me lo solicitara se podría hacer?


Sí se puede, para que te solicite usuario y contraseña el script puedes añadir lo siguiente al contenido del fichero de script ejecutar_sql.sh:

Código:

echo "Introduzca usuario:"
read usuario

echo "Introduzca contraseña (no se mostrará)"
stty -echo
read contrasena
stty echo

echo "Introduzca consulta SQL"
read consultasql

echo "set feedback off verify off heading off pagesize 0
        $consultasql
        exit" | $ORACLE_HOME/bin/sqlplus -s $usuario/$contrasena | while read output;
        do
           echo $output
        done


Con el script anterior también te solicitará que introduzcas la consulta SQL.
MensajePublicado:
Lun Ene 26, 2015 1:32 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Oracle Database, motor de base de datos profesional  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+