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

Lanzar Procedimiento de ORACLE con parametros desde Shell

Estas en el tema de Lanzar Procedimiento de ORACLE con parametros desde Shell en el foro de Oracle en Foros del Web. Hola a todos Tengo un procedimiento almacenado que recibe parámetros así: Código: PROCEDURE MI_PROC ( id NUMBER, dato1 VARCHAR2, dato2 VARCHAR2, dato3 NUMBER, dato 4 ...
  #1 (permalink)  
Antiguo 12/04/2011, 18:07
 
Fecha de Ingreso: febrero-2011
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 1
Pregunta Lanzar Procedimiento de ORACLE con parametros desde Shell

Hola a todos

Tengo un procedimiento almacenado que recibe parámetros así:

Código:
PROCEDURE MI_PROC ( id NUMBER, 
                   dato1 VARCHAR2, 
                   dato2 VARCHAR2, 
                   dato3 NUMBER, 
                   dato 4  VARCHAR2) IS..... END;
Desde un shell por un sqlplus lanzo el procedimiento de la siguiente manera:

Código:
sqlplus -S /NOLOG cargar.sql 1 $valor1 $valor2 $valor3 $valor4>salida.txt
El archivo cargar.sql tiene esta estructura:

Código:
connect user/pwd@BD
DECLARE  
BEGIN
  MI_PROC(&1, &2, &3, &4, &5);
END;
/                     
EXIT;
Este proceso funciona perfectamente si le envío desde el shell números, por ejemplo:
Código:
valor1=254
valor2=7895
valor3=87458451
valor4=20110420124578
Pero el problema que tengo es que al enviar un valor alfanumérico en valor4 no me está ejecutando el procedimiento, por ejemplo:
Código:
valor4=20110420_124518
Quisiera saber cuál es la forma correcta de enviar valor4 para que el shell lo interprete correctamente y la BD lo ejecute

Gracias!!!

Última edición por SONOFGOD; 12/04/2011 a las 18:08 Razón: Forma
  #2 (permalink)  
Antiguo 12/04/2011, 18:36
 
Fecha de Ingreso: febrero-2011
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Lanzar Procedimiento de ORACLE con parametros desde Shell

Encontre la respuesta...

La comento por si alguien llega a necesitarlo

En el archivo cargar.sql se debe encerrar en comillas sencillas el parámetro alfanumérico asi:

Código:
connect user/pwd@BD
DECLARE  
BEGIN
  MI_PROC(&1, &2, &3, &4, '&5');
END;
/                     
EXIT;

Etiquetas: alfanumericos, parametros, shell, sqlplus
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 09:04.