DECLARE end_num number(30); BEGIN select count(*) INTO end_num from TABLE_A; for i in 1 .. end_num loop UPDATE TABLE_A SET name_=('justin' || i) where table_id= (SELECT table_id FROM (select table_id from TABLE_A where ROWNUM<=i ORDER BY ROWNUM DESC) where ROWNUM=1); sys.dbms_output.put_line('justin' || i); end loop; commit; END;
DECLARE:声明变量关键字 end_num number(30); 变量名及类型 BEGIN :相当于{ select count(*) INTO end_num from TABLE_A; 通过into关键字将查询结果赋值给变量 for i in 1 .. end_num loop :循环语法,变量为i,从1开始,从end_num结束 内层查询:根据行号倒序获取i条数据 外层查询:只获取提一条内容查询结果 table_id=第i条数据的table_id的值 end loop; 循环结束语法 commit :提交 END :相当于 }