IT分销/经销

db2 动态绑定变量如何写? 表名是动态的

db2 动态绑定变量如何写

loop
  fetch cursor to v_tableName;
  set str = 'select count(*) into v_count from '|| v_tableName;
  exec ?
  prep?
end loop

大致是这样,要游标查询出来的表名,计算每张表的总数,放到V_count变量里面。
请问应该怎么写?
请赐教谢谢!
参与6

3同行回答

liaogzhuliaogzhu数据库开发工程师PCI
可以使用动态游标解决  DECLARE v_count INT DEFAULT 0;  DECLARE v_sql   VARCHAR(2000);  DECLARE stmt1 STATEMENT;   DECLARE c1 CURSOR FOR stmt1;    SET v_sql = 'SELECT COUNT(*) FROM '...显示全部

可以使用动态游标解决

  DECLARE v_count INT DEFAULT 0;

  DECLARE v_sql   VARCHAR(2000);

  DECLARE stmt1 STATEMENT;

  DECLARE c1 CURSOR FOR stmt1;

  

  SET v_sql = 'SELECT COUNT(*) FROM '||pi_table||' WHERE  sourcedate = ? AND timeofday = ?  AND entitykey = ?' ;

  PREPARE stmt1 FROM v_sql;

  OPEN c1 USING pi_sourcedate,pi_timeofday,pi_entitykey;

  FETCH c1 INTO v_count;

  CLOSE c1;

收起
软件开发 · 2016-06-22
浏览1168
wp28556259wp28556259软件架构设计师CMBC
可以用数组,或者把这个动态变量放到表中,也用游标遍历SET RECENT_CALLS = ARRAY[9055553907, 4165554213, 40855536]SET NEXT_CONSTIDX = ARRAY_NEXT(RECENT_CALLS ,0)在INFOCENTER里搜索ARRAY,可以看到一系列相关方法显示全部
可以用数组,或者把这个动态变量放到表中,也用游标遍历
SET RECENT_CALLS = ARRAY[9055553907, 4165554213, 40855536]
SET NEXT_CONSTIDX = ARRAY_NEXT(RECENT_CALLS ,0)

在INFOCENTER里搜索ARRAY,可以看到一系列相关方法收起
银行 · 2012-05-15
浏览1184
leo_wynleo_wyn商业智能工程师Security
可以参考我的这篇文章:http://www.db2china.net/home/space.php?uid=1167&do=blog&id=8515显示全部
系统集成 · 2012-05-15
浏览1149

提问者

jiang_918
网络工程师jiagnhu

问题状态

  • 发布时间:2012-05-14
  • 关注会员:2 人
  • 问题浏览:3654
  • 最近回答:2016-06-22
  • X社区推广