`

Oracle存储过程-删除所有表

 
阅读更多

 

删除所有user_tables中的表 ,这样非常不安全,执行改存储过程则会非常的危险. 请谨慎使用.

Set ECHO ON
set define off     
SPOOL logs/create_procedure.log

--删除所有表的存储过程;  
create or replace procedure PROC_DROPTABLE_All
as 
  --引用user_tables表中的tableName的类型;
  tableName user_tables.table_name%type;  
  type ty is record(table_name varchar2(30));
  --定义ref类型游标;-强类型
  type ref_type is ref cursor return ty;
  ref_t ref_type;
  --定义变量存储数量;
  mycount number(10);
  begin
    --打开游标;
    open ref_t for select table_name from user_tables;
         loop
             --从游标中获取一条记录,放入变量中;
             fetch ref_t into tableName;
                    SELECT COUNT(*) INTO mycount FROM user_tables WHERE TABLE_NAME = tableName;
                    if mycount>0 then
                       execute immediate 'DROP TABLE '||tableName || ' CASCADE CONSTRAINT ';
                    end if;
             exit when ref_t%notfound;  --退出;
         end loop;
     close ref_t;    
  end;
/

 

----删除单个表的存储过程,需要传入一个表的名称;

create or replace procedure PROC_dropTable(tabName in varchar2)
as 
  --引用user_tables表中的tableName的类型;
  tableName user_tables.table_name%type;  
  mycount number(10);
  begin
    --把存储过程传过来的参数,赋值给tableName;
    tableName:= tabName;
    SELECT COUNT(*) INTO mycount FROM user_tables WHERE TABLE_NAME = tableName ;
    if mycount>0 then
       execute immediate 'DROP TABLE '||tableName;
    end if;
  end;  
  /

 

 

 

分享到:
评论

相关推荐

    oracle存储过程-帮助文档

    Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写一系列SQL语句和PL/SQL块,形成可重复使用的代码单元。这篇博客“oracle存储过程-帮助文档”可能提供了关于如何创建、调用和管理Oracle存储过程...

    Oracle存储过程中使用临时表

    本篇文章将深入探讨如何在Oracle存储过程中使用临时表,包括会话级临时表和事务级临时表。 ### 会话级临时表 会话级临时表(Session-Level Temporary Tables)只在创建它的会话内可见,并且在会话结束时自动删除。...

    cx_Oracle-5.1.2-11g.win-amd64-py2.7.exe

    例如,执行存储过程: ```python cursor.callproc('stored_procedure_name', [param1, param2]) ``` 在处理大数据量时,cx_Oracle提供了批量操作的能力,可以显著提高性能: ```python cursor.executemany('...

    Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作)

    1. **操作EMP表**:我们可以创建存储过程或函数来查询、插入、更新或删除`EMP`表的数据。例如,创建一个显示所有员工姓名的存储过程: ```sql CREATE OR REPLACE PROCEDURE display_employees IS CURSOR c_emp IS...

    oracle 存储过程 函数 dblink

    ### Oracle存储过程、函数与DBLink详解 #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程...

    oracle基础--表、视图、过程、函数、游标、异常

    在Oracle中,表是数据的基本存储单元,用于组织和存储相关数据。创建表时,需要定义列名、数据类型和约束。完整性约束是确保数据准确性的关键,包括主键约束(唯一标识每一行)、外键约束(保持表间关系)、唯一性...

    oracle11G-解决空表导出的问题

    - 空表导出的问题通常在于如何确保即使没有数据,也要将表结构和相关的对象(如索引、触发器、存储过程等)导出。 3. **使用expdp导出空表**: - 首先,你需要创建一个导出参数文件(.parfile),指定要导出的空...

    cx_Oracle-7.3.0-cp36-cp36m-win_amd64.7z

    cx_Oracle库使得Python开发者可以利用Python的便利性来访问和操作Oracle数据库,执行SQL查询,进行数据插入、更新和删除等操作。它提供了连接池管理、事务控制、游标对象以及绑定和返回数据的处理等功能。 在7.3.0...

    Oracle-11g-R2-RAC-with-ASM存储迁移-手记.docx

    Oracle 11g R2 RAC with ASM 存储迁移手记 本文详细介绍了如何将 Oracle RAC 的数据库数据迁移到新的存储设备上,并提供了详细的迁移步骤和图文说明。整个迁移过程中,使用了 ASM DISKGROUP 的方式来完成存储迁移,...

    kmod-oracleasm-2.0.6.rh1-3.el6.x86_64.rpm和Oracleasmlib、Oracleasm-support

    这个模块允许Linux内核直接支持Oracle ASM的功能,比如动态添加或删除磁盘到ASM集群,而不需要重启系统。这个包的版本号2.0.6.rh1-3表明它是针对Red Hat兼容环境(如CentOS 6)的一个定制版本。 Oracleasm-support-...

    ORACLE存储过程实现添加、修改、删除、查询

    下面将详细介绍如何利用Oracle存储过程实现添加、修改、删除和查询操作。 ### 1. 添加数据 存储过程`P_EMP_INSERT`用于向`EMP`表中插入新记录。此过程接受两个参数:`V_ID`(员工编号)和`V_NAME`(员工姓名)。...

    Oracle存储过程开发的要点

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,用于封装一系列SQL和PL/SQL代码,以实现特定的功能。在Oracle中,存储过程可以提高应用程序的性能,因为它减少了与数据库的交互次数,并允许在数据库级别...

    oracle存储过程使用文档

    ### Oracle存储过程使用知识点 #### 一、存储过程概述 - **定义**:存储过程(Stored Procedure)是在数据库中预编译的一组SQL语句集合,它可以被当作一个单独的对象来调用,只需要指定存储过程的名字及参数(如果...

    Oracle存储过程、函数和包

    ### Oracle存储过程、函数和包的关键知识点 #### 1. 存储过程和函数的认识 - **定义**:存储过程和函数是特定类型的PL/SQL块,它们被存储在数据库中,作为命名的对象存在。 - **命名存储**:与普通的PL/SQL块不同,...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    Oracle 存储过程调用 CallabledStatement 实用例子(IN OUT 传游标) 一、Oracle 存储过程简介 Oracle 存储过程是一种可以在 Oracle 数据库中存储和执行的程序单元。存储过程可以由多种语言编写,例如 PL/SQL、...

    使用java实现oracle存储过程

    使用java实现oracle存储过程。 共有3个小例子。实现的功能 1、无返回值的存储过程 如 insert 2、有返回值的存储过程(非列表)select id from tab 3、返回列表 如:select * from tab 顺便鄙视下csdn,作为一个it...

    oracle 存储过程 案例

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重复使用的程序单元。这个“Oracle存储过程案例”提供了丰富的学习材料,帮助用户从入门到精通掌握...

    oracle删除用户下所有表

    这个简单的调用语句就会触发上述定义的存储过程,从而删除指定用户下的所有表。 #### 注意事项 - **权限问题**:在执行删除操作之前,请确保当前用户具有足够的权限(通常是 DBA 或者更高权限)。否则,可能会遇到...

    Java调用oracle存储过程通过游标返回临时表

    本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...

    oracle存储过程学习资料

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列复杂的SQL和PL/SQL语句,形成可重用的代码块。这些代码块可以执行数据处理、事务控制、错误处理等多种任务,极大地提高了数据库应用...

Global site tag (gtag.js) - Google Analytics