Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) cursor !


BRANCO_STYLE

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 0
Não entendi muito bem sua pergunta.

Entendi q você qr verificar se um dado existe ou não certo, mais a questão do cursor, não entendi :S

Oi, Anderson! convém que você estude sobre cursores e fetch em Storages procedures no MySQL.

Oi, BRANCO_STYLE!

Pesquisas através de cursores somente em storages procedures. se não for este o caso então é melhor que você controle através de índices únicos e /ou sua linguagem de programação.

A procedure abaixo é um exemplo do uso de cursor.

/* Procedure structure for procedure `inclui_em_teste1` */

drop procedure if exists `inclui_em_teste1`;

DELIMITER $$;

CREATE DEFINER=`root`@`localhost` PROCEDURE `inclui_em_teste1`()
BEGIN
   DECLARE m_nome CHAR(60);
   DECLARE eof_teste INTEGER DEFAULT 0; /* cria a variavel que servirá de controle para EOF */
     
   DECLARE cur_teste CURSOR FOR  /* Cria o cursor que trabalhará o select */ 
      SELECT nome 
      FROM teste;

   DECLARE CONTINUE HANDLER FOR NOT FOUND SET eof_teste = 1;  /* Cria a chave que verificará e mudará o valor da variavel de eof quando o select chegar ao final */
   OPEN cur_teste; /* abre o select */
   FETCH cur_teste INTO m_nome; /* Le a linha */
   WHILE NOT m_eof DO
      START TRANSACTION;
      INSERT INTO teste1 (codigo, nome)
      VALUES ((SELECT (max(t1.codigo)+1) FROM teste1), m_nome);
      COMMIT;
   END WHILE;
   CLOSE cur_teste; /* fecha o select */
END$$

DELIMITER;$$

Link para o comentário
Compartilhar em outros sites

  • 0

OBRIGADO DENIS ERA ISSO MESMO QUE EU KERIA, É Q NO ORACLE você TEM OS COMANDO FOUND E O NOT FOUND QUE VERIFICAM ISSO.....EXEMPLO

SE O CURSOR ENCONTROU ENTÃO ELE ATUALIZA SE NÃO ELE INSERE, EXEMPLO UM CADASTRO DE CLIENTES SE EU DIGITAR OS DADOS DE UM CLIENTE O CURSOR VAI VERIFICAR ANTES DE INSERIR EVITANDO ASSIM UMA DUPLICIDADE DE CADASTRO..

GRATO

BRANCO

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...