Ir para conteúdo

Arquivado

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

AdrianoMoura

Variável não retorna seu valor

Recommended Posts

Olá pessoal,

Estou tentando montar uma função para me retornar a lista de qualquer tabela, a função deve ser chamada assim.

 

> select getLista('tabela.campo');

o resultado deve ser algo como

'1;2;3;'

segue a função abaixo

CREATE FUNCTION getlista(field CHAR(30))
RETURNS VARCHAR(4000)
begin
 	declare lista varchar(4000) default "";
 	declare tabela char(50) default SUBSTRING_INDEX(field,'.',1);
 	declare registro char(50) default SUBSTRING_INDEX(field,'.',2);
 	declare varId varchar(100) default "";

 	declare final int default 0;
 	declare cur1 cursor for 
 	select registro from tabela tab order by registro DESC;
 	declare continue handler for not found set final = 1;

 	open cur1;
 	get_main: loop
 		fetch cur1 into varId;
 		if final = 1 then leave get_main; end if;
 		set lista = CONCAT(varId,";",lista);
 	end loop;
 	close cur1;

 	return lista;
END

o problema é que as variáveis registro e tabela não retornam o seu verdadeiro valor, ao executar:

select registro from tabela tab order by registro DESC;
a função procurar pela tabela e não o seu real valor passado pelo parâmetro.

 

Como posso pra select receber o valor do parâmetro ?

 

Desde já agradeço a todos.

Obrigado.

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.