`

Oracle存储过程-删除所有序列

 
阅读更多

在跑数据库脚本之前,

往往会重新删除数据库中所有的序列.

 

下面这种方式就提供一个存储过程,能做到删除所有的序列。

在创建序列之前调用此存储过程即可。

 

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

--删除所有序列的存储过程;  
create or replace procedure PROC_DROPSEQUENCE_All
as 
  --引用user_sequences表中的sequenceName的类型;
  sequenceName user_sequences.sequence_name%type;  
  type ty is record(sequence_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 sequence_name from user_sequences;
         loop
             --从游标中获取一条记录,放入变量中;
             fetch ref_t into sequenceName;
                    SELECT COUNT(*) INTO mycount FROM user_sequences WHERE sequence_name = sequenceName;
                    if mycount>0 then
                       execute immediate 'DROP SEQUENCE '||sequenceName;
                    end if;
             exit when ref_t%notfound;  --退出;
         end loop;
     close ref_t;    
  end;
/  

 可以保存一个.sql文件放在批处理里面执行。

 

 

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

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

 

分享到:
评论

相关推荐

    oracle通过触发器,实现序列自增

    触发器是一种特殊类型的存储过程,当特定的事件发生时(如插入、更新或删除数据)会自动执行。 ##### 创建触发器示例: ```sql CREATE OR REPLACE TRIGGER WFLog_TR BEFORE INSERT ON WFLog FOR EACH ROW DECLARE ...

    Oracle实验二-SQL语句综合应用

    在本实验中,我们主要探讨了Oracle数据库中的SQL语句应用,涉及到了表、视图、索引以及序列等核心概念。以下是对这些知识点的详细解释: 1. **创建表**: - 使用`CREATE TABLE`语句创建了一个名为`person`的表,...

    Oracle删除当前用户下的所有表、视图、序列、函数、存储过程、包

    Oracle删除当前用户下的所有表、视图、序列、函数、存储过程、包 Oracle删除当前用户下的所有表、视图、序列、函数、存储过程、包

    Oracle 删除所有表,视图,序列,函数,存储过程等SQL

    ### Oracle删除所有表、视图、序列、函数、存储过程等SQL知识点详解 #### 一、概述 在Oracle数据库管理中,有时会遇到需要彻底清除某个模式下的所有对象的情况,如表、视图、序列、函数、存储过程或包等。这种需求...

    ORACLE全球大会-ORACLE-SQL-Developer功能介绍.pdf

    工具提供修改现有数据库对象的功能,如重命名表、添加列、编译视图、重建索引、调试存储过程、禁用触发器、删除序列、更新物化视图、删除同义词、测试数据库链接、清空回收站等。用户可以通过右键单击对象并选择...

    Oracle-NoSQLDB-入门.pdf

    **Oracle NoSQL Database** 是一款由 Oracle 开发并维护的高性能键值存储系统,适用于大规模分布式环境中的数据管理和处理。它特别适用于需要快速读写访问、高可用性和横向扩展能力的应用场景。 ##### 1. Oracle ...

    Oracle开发技术--整理

    - 程序(Procedure, Function, SQL和PL/SQL数据):存储过程和函数,用于实现复杂逻辑和操作。 3. **SQL命令类别** - 数据检索(Data Retrieval):SELECT语句用于查询数据。 - 数据操作语言(DML):INSERT、...

    sqlserver中创建类似oracle序列的存储过程

    ### SQL Server 中创建类似 Oracle 序列的存储过程 #### 背景介绍 在数据库管理系统(DBMS)中,序列是一种自增的数据结构,常用于自动产生唯一标识符(如ID)。Oracle 数据库提供了非常方便的序列机制,而 SQL ...

    java web中的oracle存储过程

    通过上述示例可以看出,在Java Web应用中利用Oracle存储过程可以高效地完成数据的增删查操作。这种方式不仅提高了代码的复用性和可维护性,还能够充分利用数据库的能力,减少网络传输数据量,提升整体性能。在实际...

    Oracle入门教程-28本全套

    4. **PL/SQL编程**:介绍Oracle的编程语言PL/SQL,包括声明变量、控制流程语句(IF-THEN-ELSIF、CASE、LOOP)、异常处理和存储过程的编写。 5. **表和数据类型**:详解Oracle中的数据对象,如表的创建、索引、视图...

    oracle-user-permission-settings.rar_oracle

    - **执行权限**:对PL/SQL对象(如存储过程、函数、触发器)的执行权。 - **资源权限**:如CPU使用限制、存储空间限制等。 3. **权限的授予与撤销** - **GRANT语句**:用于向用户或角色授予权限。例如,`GRANT ...

    Oracle11gOCP-051干货笔记

    - **DML和DDL的其他用法**:可能涉及到触发器、存储过程等高级功能。 - **GROUP BY统计报告**:通过分组计算统计数据。 - **分层查询**:层次查询,如CONNECT BY,用于处理树状结构数据。 - **ORACLE TIMEZONE**:...

    Oraclec--h5_2实验报告

    使用序列可以简化主键的管理过程,确保每条记录都有唯一的标识符。 ##### 视图的创建与维护 视图是基于一个或多个表的结果集,它并不实际存储数据,而是作为一个虚拟表存在。创建视图可以方便地进行查询操作,并有...

    EBS12-Oracle Applications Database-EDU41D5Y.pdf

    - **APPS模式**是Oracle Applications的核心,包含了所有产品模块共享的对象,如基础数据、安全设置和系统配置。 - 它是多租户架构的基础,允许多个产品和组织在同一数据库中运行。 3. **多语言支持**: - ...

    Oracle数据库应用-复习题及答案.pdf

    - EXECUTE权限通常授予存储过程,使得用户能够执行这些过程。 **30. 不具有SELECT对象权限的对象类型:** - **正确答案:c. 过程 (PROCEDURE)** - 过程通常不需要SELECT权限,因为它们不是用来查询数据的。 以上...

    oracle常用命令-一完整的电子商务网案例

    - 调用存储过程/函数时使用OracleParameter对象传递参数。 以上是关于Oracle数据库管理和操作的一些常见命令和技巧的详细介绍。这些知识点对于开发和维护一个完整的电子商务网站非常重要。通过对这些命令的学习和...

    福建省电力公司oracle培训教材--ORACLE的逻辑结构及其管理

    在Oracle中,逻辑结构是用户与数据库交互的抽象层面,它不涉及具体的物理存储细节,而是关注数据如何被组织和访问。以下是对这部分内容的详细解释: 1. **表空间**: 表空间是Oracle数据库的基本存储单元,它由一...

    删除oracle下当前用户创建的所有对象

    本文将详细讲解如何在PLSQL环境中删除一个用户所创建的所有对象,包括表、视图、序列、触发器和存储过程,以达到数据库初始创建时的状态。 首先,让我们了解Oracle数据库中的这些主要对象类型: 1. **表**:这是...

    Oracle10g-教程PPT

    5. **数据库对象**:表、视图、索引、序列、存储过程、触发器和约束等是Oracle数据库的主要对象。理解如何创建、修改和删除这些对象对于数据库设计和管理至关重要。 6. **数据库安全**:Oracle10g提供了一套全面的...

    Oracle数据库中序列的使用

    本文将详细介绍Oracle数据库中序列的创建、修改以及删除方法,并通过一个具体的示例来演示序列的使用。 #### 序列的基本概念 序列是一种能够按需生成连续整数的数据库对象。它可以用于自动填充某些字段,特别是当...

Global site tag (gtag.js) - Google Analytics