informix中,写了一个存储过程,发现游标返回的变量不能作为表的列名进行查询操作,请帮忙看看如何修改,谢谢了!

jbtbl 2007-08-07 06:31:48
create procedure rb_proc()

define Temp_col varchar(20) ;

BEGIN WORK;
FOREACH cur_col for SELECT colname
INTO Temp_col FROM syscolumns
WHERE tabid='1949' and colname <>'qishu'
IF Temp_col IS NOT NULL THEN
insert INTO temp_gl
select Temp_col as ball,sum(Temp_col)/count(qishu) as y_03,'','','','',''
--问题就出现在sum中,执行后报错 :
-- 367: Sums and averages cannot be computed for character columns.
from temp_rb group by 1;
END IF;
END FOREACH;
COMMIT WORK;
end procedure ;

--说明在取到Temp_col的值后,认为这是一个字符常量,不认为这是数据库中的一个字段;试了很多方法,包括加trim(),加表名,都无济于事。请高手帮我分析如何解决,谢谢!
...全文
575 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cloudflashes 2008-10-05
  • 打赏
  • 举报
回复
这个是没办法的事。Informix不允许在存储过程中把表名作为变量。

lkb_java 2008-09-30
  • 打赏
  • 举报
回复
..
xxyyy 2007-09-25
  • 打赏
  • 举报
回复
Informix的存储过程不支持动态SQL语句
jbtbl 2007-08-08
  • 打赏
  • 举报
回复
等一个晚上了!
请各位高手帮忙看看啊!谢谢拉!

1,195

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧