我无法删除sqlplus中的所有表

时间:2019-02-13 16:00:17

标签: oracle plsql

sql >
DECLARE
     CURSOR ix IS SELECT object_type,
                         object_name
                  FROM all_objects
                  WHERE object_type = 'TABLE' AND owner = 'demo';
BEGIN
     FOR x IN ix LOOP
          EXECUTE IMMEDIATE ( 'DROP ' || 
x.object_type || ' ' || x.object_name || ' CASCADE     CONSTRAINT'
          );
     END LOOP;
END;
/

2 个答案:

答案 0 :(得分:0)

请尝试

sql >
DECLARE
     CURSOR ix IS SELECT owner , object_type,
                         object_name
                  FROM all_objects
                  WHERE object_type = 'TABLE' AND owner = 'DEMO';
BEGIN
     FOR x IN ix LOOP
          EXECUTE IMMEDIATE ( 'DROP ' || 
x.object_type || ' ' || x.owner||'.'||x.object_name || ' CASCADE   CONSTRAINTS'
          );
     END LOOP;
END;
/

答案 1 :(得分:0)

只需尝试此代码,

DECLARE
 CURSOR ix IS SELECT owner , object_type,
                     object_name
              FROM all_objects
              WHERE object_type = 'TABLE' And upper(owner) = upper('demo');
BEGIN
 FOR x IN ix LOOP
      EXECUTE IMMEDIATE ( 'DROP ' || x.object_type || ' ' || 
       x.owner||'.'||x.object_name || ' CASCADE   CONSTRAINTS');
 END LOOP;
END;