create table语句在表中插入了多少行

时间:2017-07-18 08:35:31

标签: oracle plsql create-table

有没有办法计算

插入表格的行数
Create table tbl1 as select * from tbl2;

从PL \ SQL函数执行的语句(立即执行)?

当我使用SQL%ROWCOUNT时,结果为1。

感谢。

2 个答案:

答案 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);