-- 创建原表A
create table A
(
ABC NUMBER not null
);
-- 表A必须包括一个主键
alter table A add constraint P primary key (ABC);
--分析表A是否可以在线重建,如果报错则不可以
EXEC sys.dbms_redefinition.can_redef_table('DLYX','A');
-- 创建一个中间表A1,用于存储原来数据,约束不可重名
create table A1
(
ABC NUMBER not null
);
alter table A1 add constraint P1 primary key (ABC);
--开始重建
EXEC sys.dbms_redefinition.start_redef_table('DLYX','A','A1');
--结束重建
EXEC sys.dbms_redefinition.finish_redef_table('DLYX','A','A1');
--终止重建(如果不想重建)
EXEC sys.dbms_redefinition.abort_redef_table('DLYX','A','A1');
--删除中间表A1
DROP TABLE A1;
-- 重命名表约束
alter table A drop constraint P1 cascade;
alter table A add constraint P primary key (ABC);
分享到:
相关推荐
DBMS_REDEFINITION 是 Oracle 10g 中的一个包,主要用于在线修改表的属性,可以在线重定义表,性能调优方面用处很大。 DBMS_REDEFINITION 包提供了多个函数和过程,可以用于在线重定义表,包括判断某个表能否进行...
标题中的问题“ORACLE SYS.DBMS_REGISTRY_SYS has errors”指的是在Oracle数据库系统中,系统包BODY `SYS.DBMS_REGISTRY_SYS` 出现错误,导致了一系列的PL/SQL调用失败。这种错误通常与数据库的元数据注册功能有关,...
dbms_stats.gather_schema_stats 过程时,如果你想要知道自从上一次分析统计数据以来,发生了多少次插入、更新和删除操作,可以使用 alter table xxx monitoring 命令,Oracle 会用 dba_tab_modifications 视图来...
通过阅读如“Oracle中的包――DBMS_LOB(一).pdf”、“ORACLE LOB大对象处理.pdf”和“DBMS_LOB包的使用.pdf”等资料,可以深入理解这些概念,并通过实践来熟练掌握。同时,“dbms_lob包学习笔记之二:append和...
Oracle的这些XML处理工具对于处理XML存储过程、XML索引、XMLType列以及XML Schema定义的表都极其有用。它们允许数据库管理员和开发者在数据库层面上直接处理XML数据,大大提高了数据处理的效率和灵活性。因此,熟悉...
### DBMS_OBFUSCATION_TOOLKIT:Oracle 数据库中的加密与解密工具包 DBMS_OBFUSCATION_TOOLKIT是Oracle数据库提供的一种用于数据加密解密的强大工具包,自Oracle 8i版本开始引入。它支持多种加密算法,如DES、...
1. **对于分区表**:建议使用 `DBMS_STATS` 而不是 `ANALYZE` 语句,因为 `DBMS_STATS` 支持并行处理、可以收集整个分区表的数据以及单个分区的数据,并且可以在不同级别上计算统计信息。 2. **对于非分区表**:同样...
### Oracle DBMS_SQL 使用详解 #### 一、概述 在Oracle数据库中,`DBMS_SQL`包是一个功能强大的工具,用于执行动态SQL语句。它提供了处理动态SQL语句的能力,使得开发人员能够灵活地构建和执行SQL语句,而不需要...
本文将详细介绍如何通过在线重定义(DBMS_REDEFINITION)将普通表转换为分区表,这是官方给出的四种方法之一,且对系统的影响最小。 在线重定义是一种在不影响用户访问的情况下,改变表结构的方法。以下是将普通表...
### 如何禁用及回收Java的授权:dbms_java 授权管理详解 #### 一、引言 在Oracle数据库环境中,`dbms_java`包提供了一系列功能强大的工具,用于管理和控制Java应用程序的安全性。这对于那些在Oracle环境中部署了...
在Oracle数据库系统中,DBMS_SQL是一个非常重要的包,它提供了动态执行SQL语句的功能,这对于开发复杂的数据库应用或者需要在运行时构建SQL语句的情况非常有用。DBMS_SQL允许我们处理那些在编译时未知的SQL语句,极...
它定义了作业重复执行的时间间隔,可以使用Oracle支持的时间表达式来设置。 5. **NO_PARSE**:布尔值,默认为`FALSE`。如果设置为`TRUE`,则不解析`WHAT`中的语句,直接执行。 6. **INSTANCE**:整数,默认为`ANY_...
在Oracle数据库系统中,`DBMS_RANDOM`是一个非常实用的包,它提供了生成随机数和随机字符串的功能。这个包在各种场景下都有广泛的应用,比如在测试数据的生成、模拟随机行为或者创建伪随机数据时。我们将深入探讨`...
DBMS_XPLAN是Oracle提供的一个用于查看SQL计划,包括执行计划和解释计划的包;在以前查看SQL执行计划的时候,我都是使用set autotrace命令,不过现在看来,DBMS_XPLAN包给出了更加简化的获取和显示计划的方式。 这5...
本文将探讨Oracle中的动态SQL实现机制,重点介绍DBMS_SQL系统包的结构与使用方法,通过实例展示动态SQL的基本用法和相关技巧。 动态SQL是指在程序执行时才能确定的SQL语句,它与静态SQL相对。静态SQL的语句在编写...
在Oracle数据库中,执行计划是数据库执行SQL语句的步骤序列,包括表扫描、连接操作、排序和索引使用等。 描述虽然为空,但根据标题我们可以推测,这篇博文可能是关于如何使用DBMS_XPLAN包来解析和理解Oracle的执行...
使用 Oracle 的 DBMS_JOB 来实现任务计划管理 Oracle 数据库提供了一个功能强大的任务计划管理系统,称为 DBMS_JOB,可以帮助用户实现任务计划管理。在本文中,我们将详细介绍如何使用 Oracle 的 DBMS_JOB 来实现...
对于偶尔需要进行 重做日志 解释的人(或者记力不是特别强的牛人)来讲,可能不太记得完整的DBMS_...鉴于以上的种种不便,在下对LOGMNER程序包,进行了封装,方便大量使用ORACLE 强大的日志分析工具dbms_logmner.
ORACLE 数据库封装过程 DBMS_SQL 的应用 DBMS_SQL 是 ORACLE 数据库提供的一种封装过程,它允许开发者在 PL/SQL 程序中执行 DDL 语句和动态的 SQL 语句。DBMS_SQL 的应用可以解决在项目开发中对用户管理和 DDL 使用...