Eu tenho um procedimento que recebe parâmetros e faz uma declaração dinâmica com base neles. A instrução sempre retorna um valor numérico. Como faço para retornar esse valor ou passá-lo para a variável?
Por exemplo o seguinte:
DECLARE VAR1_INPUT INT;
DECLARE SQLSTRING VARCHAR(5000);
DECLARE OUTPUTVAR INT;
SET VAR1_INPUT = 5;
SET SQLSTRING = 'select next value into :OUTPUTVAR for MYSCHEMA.MYSEQUENCE_'||CAST(VAR1_INPUT AS VARCHAR(25))||' from sysibm.sysdummy1';
EXECUTE IMMEDIATE SQLSTRING;
Suponho que eu poderia usar um cursor, mas isso será muito executado e precisa ser leve, prefiro evitar cursores. E não fique fixado no SQL dinâmico sem sentido acima, isso é apenas um exemplo. :)
Editar: A pergunta original tinha a seleção de um valor de uma tabela como a pergunta. A resposta correspondeu a isso, então estou marcando-a como a resposta correta. Mais tarde, percebi que as sequências funcionam de maneira diferente, então editei a pergunta. Essa parte eu nunca percebi.
Tentar
Instrução SELECT INTO
PS. SELECT deve retornar apenas uma linha. Caso contrário, limite a quantidade de linhas retornadas (com alguma ordenação definida).