【发布时间】:2026-02-15 02:50:01
【问题描述】:
我在 PL/SQL 中编写了以下程序,在学生表中插入 5 行。根据循环条件,行数应为 5,但仅显示 1。将 DBMS 输出置于循环下也无济于事。
DECLARE
v_input_1 INT;
v_input_2 VARCHAR2(15);
v_input_3 VARCHAR2(10);
v_counter NUMBER := 10;
BEGIN
v_input_1:= 0;
v_input_2:= &Type_student_name;
v_input_3:= &Type_student_class;
LOOP
INSERT INTO STUDENTS(id, student_name, student_class)
VALUES(v_input_1+v_counter, v_input_2, v_input_3);
v_counter:=v_counter+10;
EXIT WHEN V_counter > 50;
--DBMS_OUTPUT.PUT_LINE('Total rows inserted : '||SQL%ROWCOUNT);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Total rows inserted : '||SQL%ROWCOUNT);
END;
【问题讨论】:
-
“游标属性的值总是指最近执行的 SQL 语句。SQL%ROWCOUNT 属性与事务的状态无关。”查看 oracle 文档:docs.oracle.com/cd/B19306_01/appdev.102/b14261/…