oracle 数据库中,自己建了个方案-test。在这个方案中会生成一些日志的表(table),如何用sql批处理删除这些表?

解决方案 »

  1.   

    你是要在程序中执行还是直接在oracle的管理工具中执行?
    drop table tab1 cascade;
    drop table tab2 cascade;
    drop table tab3 cascade;
      

  2.   

    我想从方案 test 中检索出所有名字带log的表(table),然后将其删除
    select 会检索出一大堆表,然后用drop删除检索出来的表,在;sql plus 中操作。
      

  3.   

    procedure CLEARMYLOG
        IS
        temp_name VARCHAR2(50);
        my_sqlText VARCHAR2(100);
        CURSOR TABNAME IS 
            SELECT TNAME FROM TAB WHERE TNAME LIKE '%LOG_2007%';
        BEGIN
            OPEN TABNAME;
            while TRUE loop
                FETCH TABNAME INTO temp_name;            
                      
                IF TABNAME%NOTFOUND THEN
                    EXIT;
                ELSE
                    my_sqlText := 'drop table ' || temp_name;
                    EXECUTE IMMEDIATE my_sqlText;                
                END IF;
            end loop;
         END;   
    end;