首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

DB2 动态SQL 获取 返回值解决思路

2013-01-21 
DB2 动态SQL 获取 返回值本帖最后由 huaxin520 于 2012-12-27 16:37:12 编辑因为查询的表名,及表ID未知,所

DB2 动态SQL 获取 返回值
本帖最后由 huaxin520 于 2012-12-27 16:37:12 编辑 因为查询的表名,及表ID未知,所以决定实用动态SQL:

DECLARE V_TABNAME VARCHAR(20);
DECLARE V_TABID VARCHAR(20);
DECLARE V_SQL VARCHAR(200);
DECLARE V_RESULT VARCHAR(40) DEFAULT '';

SET V_TABNAME = 'MERGE_TAB_FROM';
SET V_TABID = '1';

SET V_SQL = 'SELECT M_NAME FROM INTO V_RESULT ' || V_TABNAME || ' WHERE M_ID = ' || '''' || V_TABID || '''';

PREPARE S FROM V_SQL; --
EXECUTE S; --

但是报206错误。

如何获取M_NAME的值?
[解决办法]
貌似不能直接取到,打开游标 OR 直接将结果插入表中保存

[解决办法]


SET V_SQL = 'SELECT M_NAME FROM INTO V_RESULT ' 
[解决办法]
 V_TABNAME 
[解决办法]
 ' WHERE M_ID = ' 
[解决办法]
 '''' 
[解决办法]
 V_TABID 
[解决办法]
 '''';
--这句话对吗?
--你这个sql应该是这样的 
select m_name into v_result from v_tabname where m_id = v_tabid

[解决办法]
DB2在这个方面是不灵活的,自己手动来写。
[解决办法]
表名不确定游标就不行么?LZ试过吗?
[解决办法]
呵呵,解决就好,还是用表保存结果的方法

热点排行