`

Oracle创建主键时处理重复数据的程序

阅读更多
/****************************
v_index 为主键语句
tablename 为表名
written by:wonder
modified by:
****************************/

CREATE OR REPLACE PROCEDURE prc_delete(v_index IN VARCHAR2, tablename IN VARCHAR2) IS
  v_sql  VARCHAR2(2000);
  v_sql1 VARCHAR2(2000);

BEGIN
  EXECUTE IMMEDIATE upper('truncate table except_table');
  v_sql1 := upper(REPLACE(v_index, ';', ' ') || ' exceptions into except_table');
  BEGIN
    EXECUTE IMMEDIATE v_sql1;
  EXCEPTION
    WHEN OTHERS THEN
      NULL;
  END;

  v_sql := upper('delete from ' || tablename || ' where rowid in (select row_id from except_table where table_name=''' ||
                 tablename || ''')');
  EXECUTE IMMEDIATE v_sql;
  EXECUTE IMMEDIATE REPLACE(v_index, ';', ' ');
  COMMIT;
END prc_delete;
分享到:
评论

相关推荐

    oracle中的sequence实现主键增长

    Oracle中的Sequence是数据库管理系统提供的一种机制,用于生成序列化的整数,通常用于主键或唯一标识符,确保数据的唯一性和有序性。在Oracle中,Sequence不同于其他数据库系统的自增字段,例如SQL Server中的`...

    Oracle 创建用户及数据表的思路方法

    ### Oracle 创建用户及数据表的思路方法 #### 一、概念理解 在开始具体操作之前,我们需要先了解一些基本的概念。 ##### 1. 数据库(Database) **定义**:数据库是一种按照某种数据模型组织起来,并存储在二级...

    Oracle经典教程1——走进Oracle

    在Oracle中创建表时,可以为表定义各种约束以确保数据完整性。常见的约束包括: 1. **主键约束**:用于唯一标识表中的每一行。 2. **外键约束**:用于定义表与表之间的关系。 3. **唯一性约束**:确保列中的值不...

    Excel转Oracle

    2. 创建Oracle表结构:在导入数据之前,需要在Oracle数据库中创建一个与Excel文件匹配的表结构。定义相应的列名、数据类型(如VARCHAR2、NUMBER、DATE等)和约束(如主键、外键、唯一性等)。可以使用SQL命令如`...

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

    完整性约束是确保数据准确性的关键,包括主键约束(唯一标识每一行)、外键约束(保持表间关系)、唯一性约束(确保列中无重复值)和非空约束(保证字段不为空)等。这些约束可以在创建表时定义,也可以后续添加。 ...

    Oracle试题及答案

    - **题目解析**:在Oracle数据库中,系统全局区(System Global Area, SGA)是数据库实例启动时分配的一块共享内存区域,用于存储数据库的数据和控制信息。SGA包括多个内存结构,如数据缓冲区、重做日志缓冲区、共享池...

    oracle试题

    1. **默认表空间**:在Oracle中,如果在创建用户时没有指定DEFAULT TABLESPACE,那么Oracle将自动分配`SYSTEM`表空间作为用户的默认表空间。因此,正确答案是C.SYSTEM。 2. **内存区**:SGA(System Global Area)...

    ORACLE基础学习培训课件.pptx

    本课件主要涵盖了Oracle数据库的基本概念、SQL程序语言以及相关的数据类型和操作。 首先,Oracle服务器由Oracle例程和Oracle数据库组成。Oracle例程包括后台进程和内存结构,例如系统全局区(SGA)和后台进程,它们...

    深入探讨SQL_Server_表的主键问题

    1. 数据冗余:随着主从关系的加深,为了保持关联,从表需要存储大量重复数据,这可能导致数据冗余,占用更多存储空间。 2. SQL复杂度:使用联合主键的查询语句变得更复杂,需要匹配多个字段,影响查询效率。 3. 程序...

    sqlserver和oracle数据迁移方案

    - **标识符列和时间戳列中数据的处理**:这两种类型的列具有特殊的意义,处理时需注意其行为差异。 - **锁定请求的行**:在某些情况下,可能需要锁定特定的行以防止其他事务对其进行修改。 - **行合计和COMPUTE子句*...

    Delphi自动删除数据库中重复记录..rar

    在使用 Delphi 进行数据库开发时,有时我们需要处理数据集中存在的重复记录问题。这个压缩包文件"Delphi自动删除数据库中重复记录.."提供了一个解决方案,可能是通过 Delphi 代码来实现对数据库中重复记录的自动检测...

    excel导入oracle

    当需要将Excel或BDF(可能指的是某种特定格式的数据文件)的数据导入Oracle数据库时,这通常涉及到数据迁移或数据整合的过程。以下是对这个过程的详细说明: 首先,我们需要了解如何使用Excel数据创建Oracle表。在...

    Oracle HTML DB最佳应用方法

    在创建数据表时,如果需要自动化DML进程,那么使用数据库触发器和序列来填充主键列可以提高效率和可靠性。 其次,关于提高开发效率,使用HTML DB的UI缺省值可以预先为表、列或视图设置默认的用户界面属性,如字段...

    韩顺平玩转oracle视频的文档

    - **在Oracle中操作数据**:通过Java程序执行SQL语句来读写数据。 ### Oracle中事务处理 事务处理是确保数据一致性的重要手段。 - **什么是事务**:一组必须作为一个整体成功完成或者全部失败的操作。 - **提交...

    Oracle数据库经典学习教程

    - **面向对象特性**:Oracle采用了面向对象的设计思想,这使得它在处理复杂数据结构和应用方面更具优势。 - **发展历程**:从最初的版本发展到Oracle 11g,每个版本都有所改进与升级,但基本的数据操作方式仍然遵循...

    数据库模式对象与数据字典

    PL/SQL存储过程和存储函数是在数据库中存储并可重复调用的代码块,可以包含复杂的业务逻辑和数据处理功能。它们可以在数据库内部运行,减少了网络往返延迟,提高了应用程序的性能和安全性。 ### 触发器 触发器是一...

    Oracle 数据库傻瓜编程1000问 CHM 格式版.rar

    "Oracle数据库傻瓜编程1000问 CHM 格式版" 是一个专门针对Oracle编程问题的问答集合,源自CSDN程序社区的经验分享。这个资源对于初学者来说是一个宝贵的教程,它涵盖了Oracle数据库的基础知识、SQL查询、PL/SQL编程...

Global site tag (gtag.js) - Google Analytics