MySQL - store procedures y variables locales

 
Vista:

store procedures y variables locales

Publicado por Damian (1 intervención) el 14/01/2011 19:47:51
Hola gente!! estoy aprediendo mtsql, agradezco cualquier posible ayuda!!

Estoy trabajando con Store Procedure y tengo el siguiente... la finalidad que tiene es dar de alta a una persona, ahora hay dos tipos de persona... una de ellas es cuando el atributo esgen es igual a 1 y cuanta con atributos especiales que los a otra tabla mediante el sp alta_gendarme... es un insert sencillo que anda bien....

mi sp no funciona cuando lo junto a todo... tengo una idea... de que tenga que ver con la funcion dameid(apellido) en la cual al pasarle el apellido me devuelve el id pero no se como hacerlo bien... xq si hago con un "select idpersona from persona where Apellido like concat ('%',nom,'%');" me trae el id pero no se como guardarlo en la varible... debe tener varios errores el store p.... gracias por la ayuda!!!

CREATE DEFINER=`root`@`localhost` PROCEDURE `alta_personaesp`(ape char(30),nom char(35),ce char(15),
dni char(8),ci_c char(15),fechanac date,estcivil char(10),iose char(15),
cign char(15),lugarnac char(50),domicilio char(60),espropie char(2),
localidad char(30),provi char(20),tel char(10),email char(50),vehiculo char(30),
dominio char(10),ubiactual char(35),iddenom int(10),in id1 int(10),in id2 int(10),
in carac1 char(25),in carac2 char(25),in esgen int(1))
BEGIN
declare aux int(10);

insert into persona(Apellido,Nombre,CE,DNI,CI_Credencial,Fecha_Nac,
Estado_Civil,IOSE,CIGN,Lugar_Nac,Domicilio,Es_Propietario,Localidad,Provincia,
Te,Email,Vehiculo,Dominio,Ubicacion_actual,iddenom) values(ape,nom,ce,dni,
ci_c,fechanac,estcivil,iose,cign,lugarnac,domicilio,espropie,localidad,provi,
tel,email,vehiculo,dominio,ubiactual,iddenom);
set aux = dameid(ape);
if esgen = 16 then call alta_gendarme(aux,carac1,carac2,id1,id2);
end if;
END;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:store procedures y variables locales

Publicado por Juan Manuel Castañeda (62 intervenciones) el 29/01/2011 21:01:46
dameid(id) le devolverá una tabla.Si necesita modificar esta tabla debe utilizazr un cursor.
Si necesita que dameid(ape) le devuelva un valor único debe hacerlo indice único en la tabla y recuperarlo con = no con LIKE ''%+ ape + %'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar