Variável não retorna seu valor
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.Discussão (0)
Carregando comentários...