写了一个block,想把当前用户表的记录数状态抄写到一个自定义表中(cnt1),代码如下:declare
cnt number(10,0);
sqlstr1 varchar2(200);
cursor tblname_cursor is select table_name from user_tables;
val tblname_cursor%rowtype; begin
open tblname_cursor;
loop
fetch tblname_cursor into val;
exit when tblname_cursor%notfound;
sqlstr1:='select count(*) into cnt from '||val.table_name;
execute immediate sqlstr1;
insert into cnt1 (tblname,rowcnt)
values(val.table_name,cnt);
end loop;
close tblname_cursor;
end;
运行时,老是提示第16行 ORA-00905 确实关键字,找不出原因,请高手释疑!
cnt number(10,0);
sqlstr1 varchar2(200);
cursor tblname_cursor is select table_name from user_tables;
val tblname_cursor%rowtype; begin
open tblname_cursor;
loop
fetch tblname_cursor into val;
exit when tblname_cursor%notfound;
sqlstr1:='select count(*) into cnt from '||val.table_name;
execute immediate sqlstr1;
insert into cnt1 (tblname,rowcnt)
values(val.table_name,cnt);
end loop;
close tblname_cursor;
end;
运行时,老是提示第16行 ORA-00905 确实关键字,找不出原因,请高手释疑!
execute immediate sqlstr1 into cnt ;
execute immediate sqlstr1 into cnt;
16,17,18行需要改成如下: SQLSTR1 := 'select count(*) from ' || val.table_name;
EXECUTE IMMEDIATE SQLSTR1 INTO cnt;