把system用户删了吗?可以吗,那些表是放在“system”用户下地啊

解决方案 »

  1.   

    select 'drop table' ||table_name||  from  user_tables where table_name like 'zj_%'
    再执行一下。
      

  2.   

    要用动态SQL来执行.参考:create or replace function test return varchar2 as
        v_cursor number;
        v_string varchar2(200);
        v_row number;
    begin
        v_cursor:=dbms_sql.open_cursor;
        v_string:='drop table owner.tablename';
        dbms_sql.parse(v_cursor,v_string,dbms_sql.native);
        v_row:=dbms_sql.execute(v_cursor);
        dbms_sql.close_cursor(v_cursor);
        return ('成功执行'||v_row||'行!');
        exception
            when others then
                dbms_sql.close_cursor(v_cursor);
                return ('执行失败!'||sqlcode||sqlerrm);
                raise;
    end;如果删除多个表.,用游标循环执行.
      

  3.   

    用游標最間單的 
    declare
    ls_sql varchar2(300);
    cursor ls_cur is
    select 'DROP TABLE '||TABLE_NAME
    from all_tables 
    where owner='SYSTEM' 
    AND TABLE_NAME LIKE 'ZJ_%' 
    AND TABLESPACE_name='ZJ';
    begin
    open ls_cur;
    loop
    fetch into ls_sql;
    do_sql(ls_sql);
    end loop;
    close ls_cur;
    end;这样写是不是对啊
      

  4.   

    楼上的用法是ERP中srw的用法吧.在这里不能这么用.
      

  5.   

    请问 dinya2003(dinya 11i) 
    我该怎么做能够实现啊,我执行你那段程序只是创建了一个名为“test”的函数
      

  6.   

    v_string:='drop table owner.tablename';--把上面的函数加一个参数,tablename,然后改一下上面的v_string, v_string:='drop table '||tablename ; 然后来调用函数select test(ZJ_..) from dual ; 只要返回:成功执行信息就说明删除了表zj_..
      

  7.   

    用zwj0712(阿张) 的语句,输出为sql脚本就可以了啊。
    set heading off
    set feedback off
    set trimspool on
    spool dropSystemZjTab.sql
    select 'drop table' ||table_name||  from  user_tables where table_name like upper('zj_%');
    spooloff
    然后执行脚本就行了。