因为查询的表名,及表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试过吗?
------解决方案--------------------------------------------------------
呵呵,解决就好,还是用表保存结果的方法