Declare #jy decimal(18,2);
#jy:=2;
Update #temp1
Set jy=#jy,#jy=isnull(#jy,0)+isnull(fse,0);
试着玩了一下,用隐式游标改写
CREATE TABLE "TEST_PART1"
(
"ID" NUMBER(20,0) NOT NULL,
"REMARK" VARCHAR2(1000),
"CREATE_TIME" TIMESTAMP(0))
PARTITION BY RANGE("ID")
(
PARTITION "PART_T01" VALUES LESS THAN(100) STORAGE(ON "MAIN", CLUSTERBTR) ,
PARTITION "PART_T02" VALUES LESS THAN(MAXVALUE) STORAGE(ON "MAIN", CLUSTERBTR)
) STORAGE(ON "MAIN", CLUSTERBTR) ;
INSERT INTO TEST_PART1 VALUES(1,2,NULL);
INSERT INTO TEST_PART1 VALUES(102,2,NULL);
COMMIT;
declare
jy int;
V_COUNT int;
begin
jy=0;
for rec in (select id from TEST_PART1)
loop
update TEST_PART1 set remark=jy where id=rec.id;
jy=jy+1;
V_COUNT := V_COUNT + 1;
if v_count >1000 then
commit;
end if;
end loop;
commit;
end;
sqlserver这个是指需要update一行数据后,jy变量重新赋值,再update一行,再重新赋值的意思吗?