oracle批量联机,Oracle 12.2 使用联机重定义对表进行多处改变

下面的例子将演示如何使用联机重定义操作来对表进行多处改变,原始表jy.original的创建语句如下:

SQL> create table jy.original(

2 col1 number primary key,

3 col2 varchar2(10),

4 col3 clob,

5 col4 date)

6 organization index;

Table created.

表jy.original将按以下规则进行重定义:

.表启用高级行压缩方法进行压缩

.LOB列将被改变为SecureFiles LOB存储

.表的存储表空间将由test改变为example,并且表的块大小由8KB改变为 16KB。

.表将基于col1列进行分区

.将增加列col5

.列col2将被删除

.列col3与col4会被重命名,并且它们的位置会发生改变

.列col3的数据类型将从date改变为timestamp

.表将由索引组织表改变为堆表

.表的碎片将会被整理

为了演示碎片整理,使用下面的语句来向表加载数据:

SQL> declare

2 v_clob clob;

3 begin

4 for i in 0..999 loop

5 v_clob := null;

6 for j in 1..1000 loop

7 v_clob := v_clob||to_char(i,'0000');

8 end loop;

9 insert into jy.original values(i,to_char(i),v_clob,sysdate+i);

10 commit;

11 end loop;

12 commit;

13 end;

14 /

PL/SQL procedure successfully completed.

执行下面的语句来使用表被碎片化

SQL> delete from jy.original where (col1/3) <> trunc(col1/3);

666 rows deleted.

SQL> commit;

Commit complete.

SQL> set serveroutput on;

SQL> declare

2 l_fs1_bytes number;

3 l_fs2_bytes number;

4 l_fs3_bytes number;

5 l_fs4_bytes number;

6 l_fs1_blocks number;

7 l_fs2_blocks number;

8 l_fs3_blocks number;

9 l_fs4_blocks number;

10 l_full_bytes number;

11 l_full_blocks number;

12 l_unformatted_bytes number;

13 l_unformatted_blocks number;

14 begin

15 dbms_space.space_usage(

16 segment_owner => 'JY',

17 segment_name => 'ORIGINAL',

18 segment_type => 'TABLE',

19 fs1_bytes => l_fs1_bytes,

20 fs1_blocks => l_fs1_blocks,

21 fs2_bytes => l_fs2_bytes,

22 fs2_blocks => l_fs2_blocks,

23 fs3_bytes => l_fs3_bytes,

24 fs3_blocks => l_fs3_blocks,

25 fs4_bytes => l_fs4_bytes,

26 fs4_blocks => l_fs4_blocks,

27 full_bytes => l_full_bytes,

28 full_blocks => l_full_blocks,

29 unformatted_blocks => l_unformatted_blocks,

30 unformatted_bytes => l_unformatted_bytes

31 );

32

33 dbms_output.put_line('0-25% free = '||l_fs1_blocks||' and bytes = '||l_fs1_bytes);

34 dbms_output.put_line('25-50% free = '||l_fs2_blocks||' and bytes = '||l_fs2_bytes);

35 dbms_output.put_line('50-75% free = '||l_fs3_blocks||' and bytes = '||l_fs3_bytes);

36 dbms_output.put_line('75-100% free = '||l_fs4_blocks||' and bytes = '||l_fs4_bytes);

37 dbms_output.put_line(' full blocks = '||l_full_blocks||' and bytes = '||l_full_bytes);

38 end;

39 /

0-25% free = 0 and bytes = 0

25-50% free = 3 and bytes = 24576

50-75% free = 0 and bytes = 0

75-100% free = 0 and bytes = 0

full blocks = 10 and bytes = 81920

PL/SQL procedure successfully completed.

1.用要执行联机重定义操作的用户登录数据库

SQL> conn jy/jy@jypdb

Connected.

2.验证原始表是否可以执行联机重定义

SQL> begin

2 dbms_redefinition.can_redef_table(

3 uname => 'jy',

4 tname => 'original',

5 options_flag => dbms_redefinition.cons_use_pk);

6 end;

7 /

PL/SQL procedure successfully completed.

3.创建中间表jy.int_original

SQL> create table jy.int_original(

2 col1 number,

3 col3 timestamp,

4 col4 clob,

5 col5 varchar2(3))

6 lob(col4) store as securefile (nocache filesystem_like_logging)

7 partition by range (col1) (

8 partition par1 values less than (333),

9 partition par2 values less than (666),

10 partition par3 values less than (maxvalue))

11 tablespace example

12 row store compress advanced;

Table created.

4.开始联机重定义操作

SQL> begin

2 dbms_redefinition.start_redef_table(

3 uname => 'jy',

4 orig_table => 'original',

5 int_table => 'int_original',

6 col_mapping => 'col1 col1, to_timestamp(col4) col3, col3 col4',

7 options_flag => dbms_redefinition.cons_use_pk);

8 end;

9 /

PL/SQL procedure successfully completed.

5.复制依赖对象

SQL> declare

2 num_errors pls_integer;

3 begin

4 dbms_redefinition.copy_table_dependents(

5 uname => 'jy',

6 orig_table => 'original',

7 int_table => 'int_original',

8 copy_indexes => dbms_redefinition.cons_orig_params,

9 copy_triggers => true,

10 copy_constraints => true,

11 copy_privileges => true,

12 ignore_errors => true,

13 num_errors => num_errors);

14 end;

15 /

PL/SQL procedure successfully completed.

6.可选操作同步中间表

SQL> begin

2 dbms_redefinition.sync_interim_table(

3 uname => 'jy',

4 orig_table => 'original',

5 int_table => 'int_original');

6 end;

7 /

PL/SQL procedure successfully completed.

7.完成联机重定义操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python web开发 网络编程 HTTP协议、Web服务器、WSGI接口

文章目录1. HTTP协议2. Web服务器3. 静态服务器创建 web_server.py4. WSGI 接口4.1 CGI 通用网关接口4.2 WSGI4.3 定义 WSGI 接口4.4 运行 WSGI 服务learning from 《python web开发从入门到精通》 1. HTTP协议 应用层最主要的协议&#xff1a;HTTP协议&#xff08;HyperText…

php实现文字向左跑马灯,js实现文字跑马灯效果

js实现文字超过显示宽度每间隔1s自动向左滚动显示*{ margin:0; padding:0;}body{font:12px/1 微软雅黑;}.wrapper{font-size: 0.85rem; color: #333; padding-top: 0.75rem; margin: 0 0.75rem; white-space: nowrap; overflow: hidden;width: 300px;}.inner{ width:1000px;ove…

android 75 新闻列表页面

new.xml <?xml version"1.0" encoding"UTF-8" ?> <newslist><news><title>黑马52期就业快报</title><detail>热烈祝贺黑马52期平均薪水突破13k</detail><comment>15687</comment><image>ht…

python web开发 MySQL数据库基础

文章目录1. 简介2. 下载安装3. 操作 MysQL 数据库3.1 创建数据库3.2 选择数据库3.3 查看数据库3.4 删除数据库4. 数据类型5. 操作 MysQL 数据表5.1 创建数据表5.2 查看表的结构5.3 修改表的结构5.4 删除数据表6. 操作 MySQL 数据表记录6.1 添加数据6.2 查询、修改、删除learnin…

oracle计算每月最小工作日,Oracle计算指定日期内的工作日(不包含周末)

1、获取当天是礼拜几&#xff1a;select to_char(sysdate,d) from dual; --礼拜天为1&#xff0c;礼拜一为2&#xff0c;类推2、获取 两个时间段间的 工作日&#xff1a;select (trunc(&end_dt - &start_dt) -((caseWHEN (8 - to_number(to_char(&start_dt,D))) &g…

简单几何(极角排序) POJ 2007 Scrambled Polygon

题目传送门 题意&#xff1a;裸的对原点的极角排序&#xff0c;凸包貌似不行。 /************************************************ * Author :Running_Time * Created Time :2015/11/3 星期二 14:46:47 * File Name :POJ_2007.cpp******************************…

python 操作MySQL数据库

文章目录1. 安装 PyMySQL2. 连接对象3. 游标对象4. 增删改操作cursor.execute(sql)cursor.executemany(sql, seq_of_params)5. 查询操作6. ORM编程常用 python ORM 库learning from 《python web开发从入门到精通》 1. 安装 PyMySQL conda 虚拟环境下安装 pip install pymysq…

go oracle编程,go基础编程(一):第一个go程序-hello word

环境搭建环境搭建是在deepin操作系统上进行1. 下载go安装程序wget https://golang.org/dl/go1.16.linux-amd64.tar.gz以上是下载go1.16的版本&#xff0c;如需其他版本&#xff0c;请移步官网下载。2. 解压程序包到指定目录tar-C/usr/local-xzf go1.16.linux-amd64.tar.gz3. 添…

反射,System.Type类

http://m.blog.csdn.net/blog/woddle/40623333 两个现实中的例子&#xff1a;1、B超&#xff1a;大家体检的时候大概都做过B超吧&#xff0c;B超可以透过肚皮探测到你内脏的生理情况。这是如何做到的呢&#xff1f;B超是B型超声波&#xff0c;它可以透过肚皮通过向你体内发射B型…

python web框架基础

文章目录1. Web框架简介1.1 MVC1.2 模板引擎2. 常用 Python Web 框架3. 虚拟环境4. 部署方式learning from 《python web开发从入门到精通》 1. Web框架简介 简化 web 开发的软件框架 一般都支持&#xff1a;管理路由&#xff0c;支持数据库&#xff0c;MVC&#xff0c;ORM&…

导Excel数据到Oracle的脚本,Oracle使用TOAD实现导入导出Excel数据

在Oracle应用程序的开发过程中&#xff0c;访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作&#xff0c;对数据库进行日常管理也是需要很多SQL脚本才能完成的。Quest Software为此提供了高效的Oracle应用开发工具-Toad。在Toad的新版本中&#xff0c;还加入了DBA模块&a…

Chapter 14 Exercises Problems

转载于:https://www.cnblogs.com/momoko/p/4937730.html

FastAPI 结合 SQLAlchemy 操作 MySQL 数据库

文章目录1. 安装 SQLAlchemy2. 创建数据库3. SQLAlchemy 连接 MySQL4. 创建数据模型5. 创建 Pydantic 模型6. crud 工具7. main函数learning from 《python web开发从入门到精通》 1. 安装 SQLAlchemy pip install sqlalchemy 2. 创建数据库 mysql -u root -p 命令行登录 M…

oracle 打开 ctl,Oracle 19c 随系统systemctl启动数据库

Oracle 19c 随系统systemctl启动数据库一、 修改oratab文件[rootadg19c ~]# grep woo /etc/oratabwoo:/DBSoft/oracle/product/19.3/dbhome_1:N[rootadg19c ~]# sed -i s/:N/:Y/ /etc/oratab[rootadg19c ~]# grep woo /etc/oratabwoo:/DBSoft/oracle/product/19.3/dbhome_1:Y二…

调用exe文件(一般处理登陆安全窗口)+睡眠等待(--------------------)

在测试basic认证的时候&#xff0c;处理windows弹窗的问题时&#xff0c;是用autoit进行处理的&#xff0c;最终转成一个.exe文件&#xff0c;然后再用java调用该exe文件。 1、调用自己打包的exe文件&#xff08;如下下例子&#xff09; package com.gmsd.gommon; import java.…

LeetCode 2094. 找出 3 位偶数

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 digits &#xff0c;其中每个元素是一个数字&#xff08;0 - 9&#xff09;。数组中可能存在重复元素。 你需要找出 所有 满足下述条件且 互不相同 的整数&#xff1a; 该整数由 digits 中的三个元素按 任意 顺序 依次连接 …

oracle追踪触发器语句,Oracle中怎样通过触发器来追踪用户的活动?

从Oracle8i开始&#xff0c;Oracle引入了特殊的触发器&#xff0c;这些触发器并不是和特殊的DML事件相关联的(DML事件&#xff0c;如&#xff0c;INSERT,UPDATE和DELETE)。这些系统级别的触发器包括数据库启动触发器&#xff0c;DDL触发器和最终用户登陆/注销触发器。当Oracle提…

TotoiseSVN 使用参考文章

SVN使用教程总结 http://www.cnblogs.com/armyfai/p/3985660.html TotoiseSVN的基本使用方法 http://www.cnblogs.com/xilentz/archive/2010/05/06/1728945.html windows svn server and client and plugin的下载地址 https://www.visualsvn.com/downloads/ VisualSVN Server |…

oracle oci.dll的作用,ASP.NET bin目录中的Oracle oci.dll无法删除/不起作用

我按照这里的指示&#xff1a;http://splinter.com.au/blog/?p156尝试使用较新版本的ODP.NET而不安装Oracle 11g客户端.到目前为止,除了重启IIS之外,我都遵循了一切.然而,这引起了一些问题,我真的很好奇为什么.如果我尝试使用ODP.NET,我遇到了Oracle连接尝试连接时抛出的空白异…

POJ 3041 Asteroids (对偶性,二分图匹配)

题目&#xff1a;POJ 3041 Asteroids http://poj.org/problem?id3041 分析&#xff1a; 把位置下标看出一条边&#xff0c;这显然是一个二分图最小顶点覆盖的问题&#xff0c;Hungary就好。 挑战&#xff1a; 输出一组可行解。构造&#xff0c;已知二分图的两个点集U和V&#…