我有一个接收参数的过程,并根据这些参数进行动态声明。该语句始终返回一个数值。如何返回该值,或将其传递给变量?
例如以下:
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;
我想我可以使用游标,但这将执行很多并且需要轻量级,我宁愿避免使用游标。并且不要专注于上面的无意义的动态 SQL,这只是一个示例。:)
编辑:原始问题从表中选择一个值作为问题。答案与此相符,因此我将其标记为正确答案。后来我意识到序列的工作方式不同,所以我编辑了这个问题。这部分我一直想不通。
尝试
SELECT INTO 语句
PS。SELECT 必须只返回一行。如果不是,则限制返回的行数(具有一定的顺序)。