可以使用 SQL%ROWCOUNT
来判断 EXECUTE IMMEDIATE
语句影响的行数。
例如:
declare
l_rowcount integer;
begin execute immediate 'delete from my_table where id = 1'
into l_rowcount;
dbms_output.put_line('Deleted rows: ' || l_rowcount);
end;
在这个例子中,l_rowcount
变量会被赋值为 DELETE
语句删除的行数。
注意,如果执行的是非查询语句(例如 INSERT
,UPDATE
或 DELETE
),则 SQL%ROWCOUNT
返回的是被修改或删除的行数。如果执行的是查询语句,则 SQL%ROWCOUNT
返回的是查询返回的行数。