有没有办法计算
插入表格的行数Create table tbl1 as select * from tbl2;
从PL \ SQL函数执行的语句(立即执行)?
当我使用SQL%ROWCOUNT时,结果为1。
感谢。
答案 0 :(得分:1)
你可以试试这个。正如我在评论中提到的,你需要按照以下方式进行操作。请记住,您需要再次使用Execute immediate
否则会遇到tab1未定义的问题。
DECLARE
vsql VARCHAR2 (200);
cnt NUMBER;
BEGIN
vsql := 'create table tbl1 as select * from employee';
EXECUTE IMMEDIATE vsql;
vsql := 'select count(1) from tbl1';
EXECUTE IMMEDIATE vsql INTO cnt;
DBMS_OUTPUT.put_line (cnt);
END;
答案 1 :(得分:1)
你可以做一件事。您可以先从tbl1
创建一个空表tbl2
。然后使用SELECT
插入数据,然后使用 - SQL%ROWCOUNT
。
CREATE TABLE tbl1 AS SELECT * FROM tbl2 WHERE 1=2;
INSERT INTO tbl1 SELECT * FROM tbl2;
DBMS_OUTPUT.PUT_LINE ('No. of rows inserted in TBL2 from TBL1 = ' || SQL%ROWCOUNT);