2010-01-12 405 views

Respuesta

8

Para Oracle:

How can I issue a single command from the command line through sql plus?

@echo select version from system; | sqlplus username/[email protected] 

Usted puede redirigir la salida a un archivo y usar eso, o terminar con esto en un comando for a analizar la salida dentro de su archivo por lotes.

+0

Eso es exactamente lo que estaba buscando :) for..Thanks – Pia

+0

@ patrick..how podemos canalizar la salida a una archivo arriba? – Sunny

+0

@Sunny; '@echo selecciona la versión del sistema; | sqlplus nombre de usuario/contraseña @ base de datos> archivo.ext'. –

5

EDITAR: Esta respuesta es para SQL Server, no para Oracle. (No fue inmediatamente claro cuando se publicó la pregunta).

Es posible que desee comprobar la utilidad sqlcmd.

La utilidad sqlcmd le permite ingresar instrucciones de Transact-SQL, procedimientos del sistema y archivos de script en el símbolo del sistema. El siguiente ejemplo ejecuta una consulta cuando se inicia sqlcmd y luego sale inmediatamente. consultas múltiple por punto y coma pueden ser ejecutadas:

sqlcmd -d AdventureWorks -Q "SELECT FirstName, LastName FROM Person.Contact WHERE LastName LIKE 'Whi%';" 

Para guardar el resultado de la consulta a un archivo, puede utilizar la opción -o C:\< filename>.

+2

Para SQL Server esto funciona perfecto – Pia

0

Si tiene una utilidad SQL de línea de comandos, probablemente permita operaciones de línea de comandos. De acuerdo con su versión SQL, puede verificarlo.

3

Esto depende de la herramienta que utilice para ejecutar consultas. Por ejemplo, para the mysql command line tool, que haría:

mysql -u<user> -p<password> -h<host> -Nrs -e"SELECT version() FROM system" > out.txt 

Aquí, la pieza que va mysql -u<user> -p<password> -h<host> son las opciones estándar para conectarse al servidor. -Nrs son un conjunto de opciones que harán que el cliente no imprima todo el arte de ASCII para los resultados. El bit que va -e"SELECT version() FROM system" en realidad especifica el comando que debe ejecutarse. Consulte http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html para obtener más información sobre esas opciones específicas de mysql. Busque opciones similares en la herramienta de cliente que desea usar.

El último bit, > out.txt es un redireccionamiento estándar del sistema operativo. Causará que la salida proveniente del programa mysql se almacene en un archivo out.txt, pero quizás también pueda redireccionar directamente a su programa NSIS.

2

Trate

sqlplus user/[email protected] @query.sql > result.txt 

donde query.sql contiene la consulta de bases de datos y Result.txt se llenará con la salida de la consulta.

Dependiendo de la consulta, el archivo de salida puede no ser como esperaba (encabezados de columna, etc. como típico de sqlplus), por lo que su query.sql debe contener algunos comandos SET para ajustar la salida a sus necesidades.

Otro método es utilizar el comando Oracle SPOOL en lugar de canalizar el resultado a un archivo.

+0

es buena, pero el formato de las columnas no es así ... –

Cuestiones relacionadas