我正在尝试根据查询结果创建变量列表。我可以创建任意数量的变量,所以我希望它是动态的。但是,我无法弄清楚如何将循环迭代次数合并到变量名中。
我正在考虑这样的事情:
declare rc int default 0;
declare n_rows int;
--The number of variables to declare below is unknown
select count(1) into n_row from MyTable;
declare varname1 to varname@n_rows varchar(100);
while rc < n_rows do
select varname into var@rc from (select varname, rownumber() over() as rn from MyTable) where rn = rc;
- 我想要解决这个问题:
select varname into var1...
select varname into var2...
select varname into var3..
结束;
答案 0 :(得分:0)
一般来说,如果您发现自己必须存储未知数量的变量,则表明程序设计不正确。为什么你认为你需要将每一行存储在内存中?数据库针对集合处理进行了优化。
但是,如果你坚持按自己的方式做事,可以考虑使用数组;一个数组可以在向它添加元素时增长(直到它消耗所有应用程序内存并崩溃数据库,但这不关心你,对吗?)