Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

zenfra

Procedure

Recommended Posts

Boa noite,

 

Gostaria de saber se é possível retornar um cursor através de uma procedure no mysql.

Por exemplo:

 

tabela estrutura:

Field					Type				Null	Key	 Default	Extra
nm_sexo_id	int(11)		NO	PRI	 			auto_increment
ds_sexo_desc	varchar(10)   NO			
dt_sexo_cad	date				YES			
tm_sexo_cad	time				YES			
dt_sexo_atu	date				YES			
tm_sexo_atu	time				YES

 

 

Na procedure abaixo gostaria de retornar um cursor com a seleção do registro a partir do

id do sexo passado para o parâmetro p_NM_SEXO_ID.

 

DELIMITER |

CREATE PROCEDURE SP_SEXO_GET(
 IN p_NM_SEXO_ID INTEGER,
 OUT OUTCURSOR CURSOR
 )
 BEGIN

  OPEN OUTCURSOR FOR
				 SELECT *
				   FROM TAB_SEXO
				  WHERE NM_SEXO_ID = p_NM_SEXO_ID;



 END |

DELIMITER;

 

Em Oracle sei que poderia efetuar isso com a declaração abaixo, e gostaria de saber se é possível ou se existe uma outra forma de

fazer isso com o mysql:

 

CREATE OR REPLACE PROCEDURE SP_SEXO_GET AS
 p_NM_SEXO_ID TAB_SEXO.NM_SEXO_ID%TYPE,
 OUTCURSOR SYS_CURSOR)
 BEGIN

  OPEN OUTCURSOR FOR 
				  SELECT *
				   FROM TAB_SEXO
				  WHERE NM_SEXO_ID = p_NM_SEXO_ID;


 END SP_SEXO_GET;

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, vamos lá. . .

 

O MySQL lhe permite executar cursores dentro de Stored Procedures, bem parecido com o Oracle, mas uma diferença que, o MySQL ainda não suporta cursores do tipo scrollable, ou seja, você não tem backwarding ou forwarding, assim como tem no Oracle. Para fazer esta sua consulta, seria interessante uma simples procedure, não precisando ser um cursor, ou, caso querida utilizar o cursor, vamos lá:

 

DELIMITER //
CREATE PROCEDURE busca_sexo (v_sexo_id INT)
BEGIN
   IF (v_sexo_id IS NOT NULL) THEN
	   SELECT * FROM TAB_SEXO
	   WHERE NM_SEXO_ID = v_sexo_id;
	ELSE
		SELECT 'O sexo deve ser informado!' as MsgReturn;
	END IF;
END;
//

Mais sobre cursors no MySQL - http://dev.mysql.com/doc/refman/5.0/en/cursors.html

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.