logo DevMedia  
Home Entenda o site Revistas Canais Cursos Palestras Suporte Fórum +Serviços Assine Compre Créditos

Edição do Mês
  Fórum DevMedia
Fórum de Discussão
Conheça também o NOVO fórum da DevMedia, no endereço: www.devmedia.com.br/forum
O novo fórum possui diversas vantagens! Saiba mais em
www.devmedia.com.br/articles/viewcomp.asp?comp=14726
Estamos sempre trabalhando na melhora do site como um todo! Bons códigos!
Equipe DevMedia

 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos  RegistrarRegistrar   
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 
Edição do Mês

stored procedure dinâmica
 
Novo Tópico   Responder Mensagem    Fórum DevMedia - Índice do Fórum -> MySQL
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
abermar
Novato


Registrado em: Sexta-Feira, 28 de Março de 2008
Mensagens: 26

MensagemEnviada: Ter Set 01, 2009 3:13 pm    Assunto: stored procedure dinâmica Responder com Citação

Fala galera,

Preciso criar uma procedure, onde eu passo três parametros do tipo varchar que são: tabela, campo que estou pesquisando, e campo da tabela a ser pesquisado, para montar o meu select, por exemplo:

CREATE PROCEDURE SELECIONA(in _CAMPO VARCHAR(50),in _TABELA VARCHAR(50),in _CAMPOWHERE VARCHAR(50))
BEGIN
SELECT _CAMPO FROM _TABELA WHERE _CAMPOWHERE = _CAMPO;
END ;

o problema é que eu não sei como fazer, pq desse jeito está dando erro, não sei se declarando uma variável e concatenando o select dá para executar.

Vlw pela força!!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
emerson.en
Membro Senior


Registrado em: Terça-Feira, 16 de Março de 2004
Mensagens: 2503
Localiza?: São Paulo - SP - Brasil

MensagemEnviada: Ter Set 01, 2009 3:59 pm    Assunto: Responder com Citação

tente algo como:

C?o:
CREATE PROCEDURE SELECIONA(in _CAMPO VARCHAR(50),in _TABELA VARCHAR(50),in _CAMPOWHERE VARCHAR(50))
BEGIN
  instrucao = concat('SELECT ', _CAMPO, ' FROM ', _TABELA, ' WHERE ', _CAMPOWHERE, ' = ', _VALOR)

  PREPARE minha_declaracao FROM instrucao;
  EXECUTE minha_declaracao;
END;

_________________
Ao postar dúvidas informe sempre o SGBD e versão, linguagem utilizada, componentes de conexão/acesso e demais informações pertinentes ao problema...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email MSN Messenger
silviomorelo
Membro Junior


Registrado em: Terça-Feira, 20 de Mai de 2003
Mensagens: 67

MensagemEnviada: Ter Set 15, 2009 11:41 am    Assunto: Responder com Citação

emerson.en

No seu exemplo, quando vc coloca a instrução:

Prepare minha_declaracao from instrucao este comando está dentro da SP? e o que seria minha_declaracao?

Obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
emerson.en
Membro Senior


Registrado em: Terça-Feira, 16 de Março de 2004
Mensagens: 2503
Localiza?: São Paulo - SP - Brasil

MensagemEnviada: Ter Set 15, 2009 12:47 pm    Assunto: Responder com Citação

C?o:
  instrucao = concat('SELECT ', _CAMPO, ' FROM ', _TABELA, ' WHERE ', _CAMPOWHERE, ' = ', _VALOR)

  PREPARE tab_dinamica FROM instrucao;
  EXECUTE tab_dinamica;
  DEALLOCATE PREPARE tab_dinamica;


outro exeplo:

C?o:
  instrucao = 'SELECT * FROM CLIENTES'

  PREPARE comando_sql FROM instrucao;
  EXECUTE comando_sql;
  DEALLOCATE PREPARE comando_sql;

_________________
Ao postar dúvidas informe sempre o SGBD e versão, linguagem utilizada, componentes de conexão/acesso e demais informações pertinentes ao problema...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    Fórum DevMedia - Índice do Fórum -> MySQL Todos os horários são GMT - 3 Hours
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibído.
Responder Tópicos Proibído
Editar Mensagens: Proibído.
Excluir Mensagens: Proibído.
Votar em Enquetes: Proibído.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB