Fórum stored procedure dinâmica #31374
01/09/2009
0
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!!!
Abermar
Curtir tópico
+ 0Posts
01/09/2009
Emerson Nascimento
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;
Gostei + 0
15/09/2009
Silviomorelo
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
Gostei + 0
15/09/2009
Emerson Nascimento
instrucao = concat(´SELECT ´, _CAMPO, ´ FROM ´, _TABELA, ´ WHERE ´, _CAMPOWHERE, ´ = ´, _VALOR) PREPARE tab_dinamica FROM instrucao; EXECUTE tab_dinamica; DEALLOCATE PREPARE tab_dinamica;
outro exeplo:
instrucao = ´SELECT * FROM CLIENTES´ PREPARE comando_sql FROM instrucao; EXECUTE comando_sql; DEALLOCATE PREPARE comando_sql;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)