Ir para conteúdo

POWERED BY:

Arquivado

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

amssitemas

[Resolvido] cursor

Recommended Posts

Boa tarde ! estou aprendendo a criar cursores no mysql então segue abaixo um cursor e gostaria de força pra concluir é bem simples o que é pra ser feito percorer tds os registros mais nao ta dando certo da maneira que fiz estou apredendo.

 

CREATE DEFINER=`root`@`localhost` PROCEDURE `registrocursor`()

 

BEGIN

 

declare nomex varchar(100);

declare registrototal int ;

declare contador int;

select registrototal = count(matricula) from professor;

 

set contador = 1

 

 

 

declare p cursor for(

select nome from professor

);

 

 

open p ;

 

 

while contador <= registrototal do

 

fetch p into nomex;

select nomex;

 

end while;

 

 

close p;

 

END

 

 

esta occorendo o seguinte erro de numero 1064 justamente na criação do cursor

 

des de já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

i aew amssitemas, bom é uma pergunta meio tonta, mas você mudou o delimitador?

e outra coisa, a linha:

select registrototal = count(matricula) from professor;

vai dar erro, isso que você esta fazendo creio que nao existe,

para isso quando se trabalha com cursor, tem esse carinha arqui

DECLARE CONTINUE HANDLER FOR NOT FOUND SET contador = 1;

 

ficarai mais ou menos assim sua SP:

DELIMITER $

DROP PROCEDURE IF EXISTS `registrocursor` $
CREATE DEFINER=`root`@`localhost` PROCEDURE `registrocursor`()

BEGIN

 DECLARE nomex VARCHAR(100);
 DECLARE contador int DEFAULT 0;
 DECLARE p CURSOR FOR ( select nome from professor ) ;
 DECLARE CONTINUE HANDLER FOR NOT FOUND SET contador = 1;

 OPEN p ;

   WHILE contador = 0 do
     FETCH p INTO nomex;
       select nomex;/*isso aqui tambem fica muito estranho*/
     END WHILE;

   CLOSE p;

 END $

DELIMITER ;

 

espero que ajude abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok ire testar ... :)

 

funciono amigo ...

 

a linha era outra coisa tinhao encontrado algo do tipo pra saber o total de registro e dessa forma achei que poderia armazenar

naquela variavel "registrototal" para testar o while equanto o nomex coloquei so pra diferenciar pois o campo da tabela professor e NOME entao queria ver o que acontece :) o que vi e como se fose o "nome as nomex" des ja muito grato para sua solução .

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.