【发布时间】:2018-02-28 01:08:44
【问题描述】:
我正在尝试记录受 DELETE 语句影响的行数,所以
delete MyTbl where MyCondition = 1;
insert into MyLog(MyTotal) values(SQL%ROWCOUNT);
得到这个:
已删除 10 行。
插入 MyLog(MyTotal) 值(SQL%ROWCOUNT)
第 2 行出错 ORA-00911: 无效字符
原因:
与 PL/SQL 无关。 SQL%ROWCOUNT 是特殊的。
即使在 PL/SQL 块(无论是存储过程还是匿名过程)中,也不能在 INSERT 语句中按原样使用 SQL%ROWCOUNT;您必须创建一个变量,为其分配计数,然后在 INSERT 中使用该变量
【问题讨论】:
-
您是否在 pl/sql 块中运行它,因为如果不是,那将无法工作。
-
是的,在 TOAD 中,F5。
[MyTotal]列是整数类型。 -
Toad 不是 pl/sql 块。
-
@JorgeCampos 过程是 PL/SQL 块吗?
标签: oracle