Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

parametros en sqlplus

Estas en el tema de parametros en sqlplus en el foro de Oracle en Foros del Web. tengo un sql asi: set termout off set pagesize 0 set heading on set feedback on set verify off set colsep ";" set lines 2000 ...
  #1 (permalink)  
Antiguo 04/09/2006, 14:41
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 20 años, 2 meses
Puntos: 0
parametros en sqlplus

tengo un sql asi:

set termout off
set pagesize 0
set heading on
set feedback on
set verify off
set colsep ";"
set lines 2000 trimspo off
spool C:\tabla.csv
select * from clientes where rut = '&rut'
/
exit

le doy los parametros desde Msdos. asi
@com.sql +enter
11111111-1

lo hace bien. Pero.

en el archivo tabla.csv me envia:
Introduzca un valor para rut: 11111111-1
luego la data.
__________________
Dios es mas grande que tu problema :-)
  #2 (permalink)  
Antiguo 04/09/2006, 17:26
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 23 años
Puntos: 11
En el archivo Batch que creaste o desde el propio ambiente DOS debes de teclear algo asi:

Código:
sqlplus username/password @myScript.sql var1 var2 var3

dentro del Script cambia '&rut' por &rut sin las comillas simples; y las variables que sean tipo string (digamos var1 en este caso) debes enviarla como comilla simple

Ej, le mandas dos parametros (un String y el nombre de una base):

Código:
sqlplus monomario/prueba @myscript.sql  '"solo probando"' dual
y dentro del myscript.sql debes de tener

Código:
select '&1' from &2;
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #3 (permalink)  
Antiguo 05/09/2006, 07:22
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 20 años, 2 meses
Puntos: 0
De acuerdo

M.Gracias!
Por lo que leo el tema pasa por el uso adecuado de '' y "". Lo hice como me dices pero el archivo resultado ahora me dice:
ERROR en línea 44:
ORA-01861: el literal no coincide con la cadena de formato

en realidad este es el codigo del script:

and to_date(fecha) <= to_date(&inicio)
and to_date(fecha) >= to_date(&fin)

y asi lo ejecuto:
sqlplus mauricio/mauricio@conexion
start C:\sqlplus\myscrip.sql '30/06/2006' '01/06/2006'


Un compañero me dice que el problema es el spool. es decir deberia hacer un
define inicio antes del spool. pero solo fue un comentario de pasillo.

Atte
MG
__________________
Dios es mas grande que tu problema :-)
  #4 (permalink)  
Antiguo 05/09/2006, 08:20
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 23 años
Puntos: 11
Antes de ver lo del Spool intenta simplemente que se ejecute el Query perfectamente jugando con las comillas simples (poniendolas o no) y luego que te corra ya con parametros te das a la tarea de resolver lo del Spool
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #5 (permalink)  
Antiguo 06/09/2006, 13:19
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 20 años, 2 meses
Puntos: 0
De acuerdo

me resulto muy bien.
lo que hice fue lo siguiente:
dentro del where:
and to_date(fecha) <= to_date('&1')
and to_date(fecha) >= to_date('&2')

en la llamada.
conexion @C:mysql.sql 30/06/2006 01/06/2006


Te agradesco muchisimo!!
__________________
Dios es mas grande que tu problema :-)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:07.