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

devolver cadena de caracteres en un procedimiento almacenado

Estas en el tema de devolver cadena de caracteres en un procedimiento almacenado en el foro de Mysql en Foros del Web. Buenos dias, tengo una pregunta como puedo hacer que un procedimiento me devuelva una cadena de caracteres. ejemplo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original create ...
  #1 (permalink)  
Antiguo 26/06/2013, 07:43
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 10 meses
Puntos: 2
devolver cadena de caracteres en un procedimiento almacenado

Buenos dias, tengo una pregunta
como puedo hacer que un procedimiento me devuelva una cadena de caracteres. ejemplo

Código MySQL:
Ver original
  1. create procedure decir(IN numero int)
  2. IF numero>10 THEN
  3. var=' numero es mayor que 10';
  4. var='numero es menor que 10';
  5. //

nesecito es que me diga si el numero es mayor o menor dependiendo el numero que yo le escriba al procedimiento almacenado

Última edición por gnzsoloyo; 26/06/2013 a las 08:01
  #2 (permalink)  
Antiguo 26/06/2013, 07:54
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: devolver cadena de caracteres en un procedimiento almacenado

Hola dacroma:

Utiliza PARÁMETROS DE SALIDA en tu procedimiento... Checa la documentación oficial y el ejemplo que viene ahí o en su defecto preguntale a SAN GOOGLE cómo se utilizan estos parámetros.


http://dev.mysql.com/doc/refman/5.0/...procedure.html

Saludos
Leo.
  #3 (permalink)  
Antiguo 26/06/2013, 08:30
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: devolver cadena de caracteres en un procedimiento almacenado

OK estube aberiguando y este no lo representa ninguna variable, es decir

IF numero>10 THEN
SELECT ' numero es mayor que 10';

y esta es la respuesta.... pero ahora me nace otra duda
por que si tengo los siguientes parametros ?

create procedure ver(IN pago int, IN codigo int, OUT total int)

en el parametro de salida (total) no puedo guardar de una ves el valor que nesecito que recupere de la tabla asignada ? ejemplo

select total from factura where cod_factura=codigo into total;

y compararlo asi

if total<=pago THEN //pago representa el valor de 5000 y total el valor de 4000
select 'pago asignado';
else
select 'pago incompleto';
end if;
end
//

y cuando hago la llamada siempre se me va por el lado del "else" es decir,
en el parametro total no se queda guardado el total, sino que queda null
y es esa la razon por la cual se va siempre por el "else" y lo que nesecito es que quede el valor de la tabla y asi saber si se efectuo el pago correctamente...

tembien e intentado con set @var como variable que haga lo mismo que el parametro total pero tampoco.

Última edición por dacroma; 26/06/2013 a las 08:44
  #4 (permalink)  
Antiguo 26/06/2013, 09:05
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: devolver cadena de caracteres en un procedimiento almacenado

Hola de nuevo dacroma:

Algunas recomendaciones...

1. No utilices como nombres de parámetros los mismos nombres de tus campos (por ejemplo tu campo/parámetro TOTAL)... esto puede ocasionar problemas con el motor... utiliza algún prefijo para los parámetros o cámbiales de nombre:

Código MySQL:
Ver original
  1. CREATE PROCEDURE ver (IN p_pago int, IN p_codigo int, OUT p_total int).......

2. La asignación de los valores a los parámetros lo haces con SET o con INTO, pero estás equivocando un poco la sintaxis... prueba así:

Código:
SELECT total INTO p_total FROM factura WHERE cod_factura = p_codigo;
o

Código:
SET p_total = (SELECT total FROM factura WHERE cod_factura = p_codigo);
3. cuando publiques un post, trata de utilizar todas las herramientas de edición que proporciona el Foro, para darle formato a tu texto, encierra tu código entre etiguetas CODE o HIGHLIGT... así es más fácil distinguir tu explicación de tus ejemplos.

Saludos
Leo.
  #5 (permalink)  
Antiguo 26/06/2013, 17:44
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: devolver cadena de caracteres en un procedimiento almacenado

OK leo muchas gracias...

Etiquetas: almacenado, cadena, caracteres, devolver, procedimiento
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 18:28.