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

criando procedure (um select buscando um parametro texto)


Rickardo

Pergunta

seguinte galera to com um problema to tentando criar uma procedure mais não consigo pasar o parametro q é um texto..

por exemplo

create procedure buscaNome(in texto varchar(250))
Begin
select nome, outro_campo, outrocampo from minhatabela where nome = texto
end

acontece q quando chamo a proceddure "call buscaNome('fulano') não retorna nada.. se coloco call buscaNome(fulano) da erro.

eu acho q o erro ta no select pois se é um texto deveri ser assim

select nome, outro_campo, outrocampo from minhatabela where nome =' texto ' (entre aspas..)

mais se coloco-as ai ele busca a palavra texto e não a palavra fulano...

alguém ai pode me ajuda????

plissssssssssss

valeu

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Rickardo'

Eu fiz este teste em meu banco de teste e funcionou.

DELIMITER $$;

DROP PROCEDURE IF EXISTS `test`.`buscaNome`$$

CREATE PROCEDURE `test`.`buscaNome` (in texto varchar(250))
BEGIN
   select nome
   from sase.cliente where nome = texto;
END$$

DELIMITER;$$

É importante que o argumento passado para texto seja um nome completo existente em sua tabela. (No meu caso usei uma tabela de clientes de outro banco de minha coleção de testes. Se você passar somente parte do nome não vai funcionar por causa do tipo de comparação feito na cláusula where.

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'Rickardo'

Eu fiz este teste em meu banco de teste e funcionou.

DELIMITER $$;

DROP PROCEDURE IF EXISTS `test`.`buscaNome`$$

CREATE PROCEDURE `test`.`buscaNome` (in texto varchar(250))
BEGIN
   select nome
   from sase.cliente where nome = texto;
END$$

DELIMITER;$$

É importante que o argumento passado para texto seja um nome completo existente em sua tabela. (No meu caso usei uma tabela de clientes de outro banco de minha coleção de testes. Se você passar somente parte do nome não vai funcionar por causa do tipo de comparação feito na cláusula where.

valeu amigo vou testar

Link para o comentário
Compartilhar em outros sites

  • 0

ola amigo

olha só minha procedure

CREATE  PROCEDURE `procVerificaAcesso`(IN grupo INTEGER(11), IN modulo VARCHAR(250))
BEGIN
SELECT 
  tgrupoacesso.id_grupo,
  tmodulo.string_modulo
FROM
  tmodulo
  INNER JOIN tgrupoacesso ON (tmodulo.id_modulo = tgrupoacesso.id_modulo)
WHERE 
id_grupo = grupo AND string_modulo = modulo;
END

pois bem... compilei a procedure beleza...

quando tento executar aparece a mensagem...

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_general_ci,IMPLICIT) for operation '='

como resolvo isso????

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...