Red de conocimiento informático - Material del sitio web - Cómo pasar variables de SHELL al canal SQL-PLSQL-Oracle

Cómo pasar variables de SHELL al canal SQL-PLSQL-Oracle

[oracle@jumper oracle]$ cat a.sh sqlplus -S "/ as sysdba" lt;lt; set encabezado fuera de la columna hoy noprint columna hoy new_val dat select to_char( sysdate, 'yyyy-mm -dd') hoy desde dual; host echo 'hoy es ' amp; dat exit !$ ./a.sh hoy es 2005-04-11 [oracle@jumper oracle]$ itpub Toms_zhang proporcionó otro método:

[oracle@jumper oracle]$ more a.sh #!/bin/ksh VALUE=`sqlplus -silent "/ as sysdba" lt END set pagesize 0 feedback off; verificar apagado encabezado echo off seleccione max(número de secuencia) de v\\$log_history END` if [ -z "$VALUE" ]; luego haga eco "No se devolvieron filas de la base de datos" salga 0 otra vez haga eco "Número máximo de secuencia" : $VALUE" fi [oracle@jumper oracle]$ ./a.sh Número máximo de secuencia: 17 Hoy en la historia... gt; gt; 2010-04-11 artículo:

Acerca de la gestión de segmentos temporales Por eygle el 11/04/2005 23:23 | Comentarios (5) | Preguntas frecuentes 251 | Vistas de página: 5 Comentarios skamus | pasando variables al shell, ¿verdad? Su a.sh simplemente ejecuta sql una vez e imprime la variable dat (esta variable todavía está en sqlplus en lugar del shell) en la pantalla a través del eco del host. ¿Qué sucede si desea utilizar variables dat en comandos del sistema operativo distintos de sqlplus en a.sh? ¿Es posible utilizar el comando host para hacer todo en sqlplus? eygle | 13 de abril de 2005 11:07 AM Echa un vistazo al segundo método kamus | 21 de abril de 2005 12:13 AM Jaja, el segundo método es bueno ¿Por qué no vi este párrafo en ese momento? en bloglines no se muestra ArseneFang | 14 de junio de 2005 2:30 PM Tengo otro requisito similar Después de ejecutar una sección de PL/SQL en sqlplus, obtengo una variable y luego paso el valor de esta variable. el shell usando el host. Los dos métodos anteriores no son aplicables. ¿Hay alguna otra manera?