sql - 如何用 SQL 删除 Oracle 数据库中的所有数据?

我在测试一些 SQL 命令时创建了很多表和用户,现在我不记得所有的表和用户名了。

但现在我想为我的大项目删除所有这些。那么是否可以在 SQL 命令行中删除它?

最佳答案

这个 PL/SQL block 将有助于删除 oracle 数据库中的所有数据

BEGIN
   FOR cur_rec IN (SELECT object_name, object_type
                     FROM user_objects
                    WHERE object_type IN
                             ('TABLE',
                              'VIEW',
                              'PACKAGE',
                              'PROCEDURE',
                              'FUNCTION',
                              'SEQUENCE',
                              'SYNONYM',
                              'PACKAGE BODY'
                             ))
   LOOP
      BEGIN
         IF cur_rec.object_type = 'TABLE'
         THEN
            EXECUTE IMMEDIATE    'DROP '
                              || cur_rec.object_type
                              || ' "'
                              || cur_rec.object_name
                              || '" CASCADE CONSTRAINTS';
         ELSE
            EXECUTE IMMEDIATE    'DROP '
                              || cur_rec.object_type
                              || ' "'
                              || cur_rec.object_name
                              || '"';
         END IF;
      EXCEPTION
         WHEN OTHERS
         THEN
            DBMS_OUTPUT.put_line (   'FAILED: DROP '
                                  || cur_rec.object_type
                                  || ' "'
                                  || cur_rec.object_name
                                  || '"'
                                 );
      END;
   END LOOP;
END;

/

https://stackoverflow.com/questions/31890032/

相关文章:

Java - 编译器错误地解析 unicode 源文件

asp.net - ResponseMode ="File"不工作

php - Laravel 5.1 如何检查目录中是否存在文件?

git - 为什么 git clone 有时创建一个 .git 目录,有时不创建?

batch-file - 批处理文件中的时间戳未正确更新

python - Django 休息框架 : How serialize list of list?

php - 学说 : Set CURRENT_TIMESTAMP as default value

xml - Odoo:如何继承菜单项(使菜单项不可见)

python - 如果在 Python 中出现异常重试

javascript - 检查字符串的第一个字符是否为数字会报错,表明 charat 不是有效方法