有没有办法在同一个事务中获取插入的行数? 我看到了PL / SQL命令:
SQL%ROWCOUNT
完成这项工作,但我不想为此创建一个程序! 我试着简单地打电话给
insert into T ...
select SQL%ROWCOUNT;
但它给了我"无效的字符"。 如果我记得很好mysql实际上有办法获取这些信息,oracle真的没有提供任何手段吗?
答案 0 :(得分:1)
我不想为此创建一个程序
无需创建任何过程,您只需使用匿名PL / SQL块。
例如,
int num = 9;
Console.WriteLine(num.ToString("X"));
更新如果您无法使用 PL / SQL ,只使用纯 SQL ,则无法使用SQL> SET serveroutput ON
SQL> DECLARE
2 var_cnt NUMBER;
3 BEGIN
4 var_cnt :=0;
5 FOR i IN(SELECT empno FROM emp)
6 LOOP
7 INSERT INTO emp(empno) VALUES(i.empno);
8 var_cnt := var_cnt + SQL%ROWCOUNT;
9 END loop;
10 DBMS_OUTPUT.PUT_LINE(TO_CHAR(var_cnt)||' rows inserted');
11 END;
12 /
14 rows inserted
PL/SQL procedure successfully completed.
SQL>
。
我想到的唯一选择是在表格中添加时间戳列,并根据时间戳查询计数,以了解插入的行数
答案 1 :(得分:0)
尝试以下,
DBMS_OUTPUT.put_line(TO_CHAR(SQL%ROWCOUNT)||' rows inserted');