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

REORG 有关问题

2012-03-09 
REORG 问题我在存储过程中用了一个游标来执行如下操作:DECLAREC1CURSORFOR select tabname FROM PUB.BML_T

REORG 问题
我在存储过程中用了一个游标来执行如下操作:
DECLARE C1 CURSOR FOR select tabname FROM PUB.BML_TAB_TP_LIST WHERE TABTP IN ('M','D'); 

OPEN C1;
CLOOP:
LOOP
FETCH C1 INTO V_TABNAME;
if sqlcode=100 then leave CLOOP;
end if;
SET V_STMT='ALTER TABLE BML.'||TRIM(V_TABNAME)||' COMPRESS NO';
EXECUTE IMMEDIATE V_STMT;
SET V_TAB='BML.'||TRIM(V_TABNAME);
  REORG TABLE V_TAB;
END LOOP CLOOP;
CLOSE C1;

编译的时候报错:
SQL0104N 在”’||TRIM(V_TABNAME);" 后面找到异常标记“REORG”。预计标记可能包括:“DROP”。SQLSTATE=42601.

请问怎么解决?

[解决办法]
reorg 语句拼成字符串sql_str

call sysproc.admin_cmd(sql_str);


[解决办法]
哦,运行reorg语句会自动提交,提交后游标就关闭了

在定义游标时加上 with hold子句

热点排行