Oracle游标遍历所有用户表(含出错处理)

DECLARE
    tablename varchar(500);
    vsql varchar(500);
    vcount int;
    vcount1 int;
    cursor emp_cursor is select table_name from user_tables;
BEGIN
    vcount:=1;
    vcount1:=1;
    tablename:='oc_gz_trip_report';

    OPEN emp_cursor;
    LOOP
         FETCH emp_cursor INTO tablename;
         vsql:='select count(1),count(1) from '|| tablename ;
         DBMS_OUTPUT.PUT_LINE(vsql);
         execute immediate vsql into vcount,vcount1;
         DBMS_OUTPUT.PUT_LINE(tablename||' '||vcount||' '||vcount1);
         EXIT WHEN emp_cursor%NOTFOUND;
    END LOOP;
    close emp_cursor;
    EXCEPTION
         WHEN OTHERS THEN
         DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END;

posted on 2022-09-27 12:48  洞幺人生  阅读(105)  评论(0)    收藏  举报