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

Como se realiza un SQL query para un procedure ?

Estas en el tema de Como se realiza un SQL query para un procedure ? en el foro de Mysql en Foros del Web. Hola a todos, Tengo un procedure pero lo quiero probar, para eso escribo los siguiente en el SQL Area de "MySQL Query Browser": Cita: DELIMITER ...
  #1 (permalink)  
Antiguo 25/09/2009, 02:41
 
Fecha de Ingreso: junio-2009
Mensajes: 174
Antigüedad: 14 años, 10 meses
Puntos: 0
Como se realiza un SQL query para un procedure ?

Hola a todos,
Tengo un procedure pero lo quiero probar, para eso escribo los siguiente en el SQL Area de "MySQL Query Browser":
Cita:
DELIMITER $$
declare ay CHAR(1);
set ay = 'F';
SELECT x.probando (ay);
$$DELIMITER;
y el error es la siguiente:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'declare ay CHAR(1);
set ay = 'F';
SELECT x.probando (ay)' at line 1

Gracias.
  #2 (permalink)  
Antiguo 25/09/2009, 06:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Como se realiza un SQL query para un procedure ?

Los store procedure se llaman con la sentencia call.

call el_procedure;

tu procedimiento se llama probando?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 25/09/2009, 11:29
 
Fecha de Ingreso: junio-2009
Mensajes: 174
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Como se realiza un SQL query para un procedure ?

Hola,
Cita:
DELIMITER $$
declare ay CHAR(1);
set ay = 'F';
call x.probando (ay);
$$DELIMITER;
Cuando quiero poner más de una sentencia en el mismo query para ejecutar hay que meter dentro del begin y el end ? o no?
Si el parametro ay es inout está bien desarrollado arriba ? dandole el valor y pasandole como parámetro ?
Gracias huesos52 !!!!!!
  #4 (permalink)  
Antiguo 29/09/2009, 05:19
 
Fecha de Ingreso: junio-2009
Mensajes: 174
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Como se realiza un SQL query para un procedure ?

no se puede declarar, asignar valor y llamar al procedure en el mismo sitio ?
  #5 (permalink)  
Antiguo 29/09/2009, 05:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Como se realiza un SQL query para un procedure ?

Cita:
no se puede declarar, asignar valor y llamar al procedure en el mismo sitio ?
¿Declarar qué?
Los DECLARE son las declaraciones de variables locales dentro de un SP, SF o TRIGGER. No existen fuera de él y mueren al terminar su ejecución.
En ese sentido, lo que dices sólo se puede hacer si lo haces dentro de otro SP.
Lo quer sí puedes declara rson variables de usuario que tienen existencia dentro de una sesión (conexión). Estas no llevan DELCARE y sólo requieren un SELECt que las genere:
Código sql:
Ver original
  1. SELECT @VAR1;
Esto genera una variable de usuario en sesion que se denomina @VAR1.

Respecto al BEGIN/END, sólo llevan uno por cuerpo (hasta lo que yo sé), y un store procedure puede llevar por dentro una enorme cantidad de sentencias. Yo tengo SP que contienen una secuencia de hasta 150 sentencias consecutivas, muchas de las cuales no son SELECTs.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 29/09/2009, 07:15
 
Fecha de Ingreso: junio-2009
Mensajes: 174
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Como se realiza un SQL query para un procedure ?

Escribo lo siguiente en el ResultSet:

SELECT @a;
SELECT @b;
SELECT @c;
SELECT @d;
SELECT @e;
SELECT @f;

SET @b='kaixo';
SET @c='N';
SET @d= 'S';
SET @e = '8';
SET @f = 0;
call x32.determina('F','','kg1','8zz','T',a,b,c,d,e,f);


Parámetros del procedure:
OUT:a.
INOUT:b,c,d,e,f.
IN: Los primeros 4 parámetros del procedure determina.


ERROR:
OUT or INOUT argument 6 for routine x32.determina is not a variable or NEW pseudo-variable in BEFORE trigger

Alguién entiende algo ?
  #7 (permalink)  
Antiguo 29/09/2009, 07:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Como se realiza un SQL query para un procedure ?

Primero:
Postea el código completo de las dos cosas, el TRIGGER y el STORED PROCEDURE. Sin eso no es posible ayudarte con precisión.

Segundo: @a es una variable de sesión de un usuario; a es una variable local de SP, SF o TRIGGER. No son lo mismo para MySQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 30/09/2009, 02:53
 
Fecha de Ingreso: junio-2009
Mensajes: 174
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Como se realiza un SQL query para un procedure ?

Antes de todo creo que el uno de los errores es la manera de pasar las variables al procedure mediante parámetro:
call x32.determina('F','','kg1','8zz','T',@a,@b,@c,@d,@e,@f);
Si tengo algún otro error que no entienda ya te preguntaré gnzsoloyo.
Gracias!
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 13:17.