salida procedimientos procedimiento parametros linesize funciones ejemplos ejecutar developer con column almacenado oracle sqlplus

procedimientos - set linesize column size in oracle



SQL Plus cambia el directorio actual (8)

¡No creo que puedas!

/home/export/user1 $ sqlplus / > @script1.sql > HOST CD /home/export/user2 > @script2.sql

script2.sql tiene que estar en /home/export/user .

Puede utilizar la ruta completa o salir de la secuencia de comandos y volver a iniciar sqlplus desde el directorio correcto.

#!/bin/bash oraenv . cd /home/export/user1 sqlplus / @script1.sql cd /home/export/user2 sqlplus / @script2.sql

(algo así - ¡haciendo esto de memoria!)

¿Cómo se puede cambiar el directorio actual en SQL Plus en Windows?

Estoy tratando de escribir un script con varios comandos "@ filename".

Sé que se puede abrir un script con el comando Archivo -> Abrir, que cambiará el directorio actual, pero estoy buscando una manera de hacerlo automáticamente sin supervisión.

Resolución

En base a la respuesta de Plasmer, establecí la variable de entorno SQLPATH en Windows, y obtuve algo que es lo suficientemente bueno para mí. No intenté configurarlo con el comando HOST (dudo que funcione).

La respuesta de Pourquoi Litytestdata es buena, pero no funcionará para mí (los directorios están muy separados). Y, por supuesto, la respuesta de Guy de que no se puede hacer también es correcta. Votaré a estos dos y aceptaré la respuesta de Plasmer.


¿Has intentado crear un acceso directo a Windows para sql plus y configurar el directorio de trabajo?


¿Podría usar la variable de entorno SQLPATH para decirle a sqlplus dónde buscar los scripts que está tratando de ejecutar? Creo que también podrías utilizar HOST para establecer SQLPATH en el script.

Podría haber problemas si dos scripts tienen el mismo nombre y ambos directorios están en SQLPATH.


No creo que puedas cambiar el directorio en SQL * Plus.

En lugar de cambiar el directorio, puede usar @@filename , que se lee en otro script cuya ubicación es relativa al directorio en el que se está ejecutando el script actual. Por ejemplo, si tiene dos scripts

C:/Foo/Bar/script1.sql C:/Foo/Bar/Baz/script2.sql

entonces script1.sql puede ejecutar script2.sql si contiene la línea

@@Baz/script2.sql

Consulte esto para obtener más información sobre @@ .


Esto es lo que hago.

Defina una variable para ayudarlo:

define dir=C:/MySYSTEM/PTR190/Tests/Test1 @&dir/myTest1.sql

No puede hacer un cd en SQL * Plus (puede hacer cd usando el comando de host, pero dado que es un proceso secundario, la configuración no persistirá en su proceso principal).


Creo que la variable de entorno SQLPATH es la mejor manera para esto: si tiene varias rutas, ingréselas separadas por punto y coma (;). Tenga en cuenta que si hay archivos de script nombrados de la misma manera en los directorios, se ejecutará el primero encontrado (por orden de ingreso de las rutas) y el segundo será ignorado.



Años después tuve el mismo problema. Mi solución es la creación de un archivo por lotes temporal y otra instancia de sqlplus:

En la primera secuencia de comandos SQL:

: set echo off spool sqlsub_tmp.bat prompt cd /D D:/some/dir prompt sqlplus user/passwd@tnsname @second_script.sql spool off host sqlsub_tmp.bat host del sqlsub_tmp.bat :

Tenga en cuenta que "second_script.sql" necesita una instrucción "exit" al final si desea volver a la primera.