我想统计每个用户表的行数,但是通过动态sql,有这样的错误。ORA-00903: 无效的表名 ORA-06512: 在第 19 行 SQL2.sql 20 2
DECLARE
TYPE cursor_type IS REF CURSOR;
curs1 cursor_type;
ammount NUMBER;
stmnt1 VARCHAR2(200);
stmnt2 VARCHAR2(200);
T_NAME VARCHAR2(100);
BEGIN
stmnt1 := 'SELECT TABLE_NAME FROM USER_TABLES';
stmnt2 := 'SELECT COUNT(*) FROM :1';
IF curs1%ISOPEN THEN
CLOSE curs1;
END IF;
OPEN curs1 FOR stmnt1;
LOOP
FETCH curs1 INTO T_NAME;
EXIT WHEN curs1%NOTFOUND;
EXECUTE IMMEDIATE stmnt2 INTO ammount USING T_NAME;
DBMS_OUTPUT.PUT_LINE('Table ' || T_NAME || ' - ' || ammount || ' rows');
END LOOP;
CLOSE curs1;
END;