返回顶部
首页 > 资讯 > 数据库 >Oracle 12.2如何使用联机重定义对表进行多处改变
  • 245
分享到

Oracle 12.2如何使用联机重定义对表进行多处改变

2024-04-02 19:04:59 245人浏览 八月长安
摘要

小编给大家分享一下oracle 12.2如何使用联机重定义对表进行多处改变,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!下面的例子将演示如何使用联机重定义操作来对表进行多处改变,原始表jy

小编给大家分享一下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.完成联机重定义操作

看完了这篇文章,相信你对“Oracle 12.2如何使用联机重定义对表进行多处改变”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle 12.2如何使用联机重定义对表进行多处改变

本文链接: https://lsjlt.com/news/64316.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle 12.2如何使用联机重定义对表进行多处改变
    小编给大家分享一下Oracle 12.2如何使用联机重定义对表进行多处改变,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!下面的例子将演示如何使用联机重定义操作来对表进行多处改变,原始表jy...
    99+
    2024-04-02
  • Oracle 12.2中如何联机重定义使用VPD策略的表
    这篇文章主要为大家展示了“Oracle 12.2中如何联机重定义使用VPD策略的表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle 12.2中如何联机...
    99+
    2024-04-02
  • Oracle 12.2使用手动创建与注册依赖对象来执行联机重定义
    下面的例子将使用手动创建与注册依赖对象的方法来执行联机重定义操作,原始表创建如下: SQL> create table jy.t1(c1 number); Table created SQL&...
    99+
    2024-04-02
  • Oracle 12.2如何使用dbms_redefinition.redef_table过程来重定义表的存储属性
    这篇文章主要为大家展示了“Oracle 12.2如何使用dbms_redefinition.redef_table过程来重定义表的存储属性”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领...
    99+
    2024-04-02
  • 如何使用自定义hooks对React组件进行重构
    这篇文章主要介绍了如何使用自定义hooks对React组件进行重构的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用自定义hooks对React组件进行重构文章都会有所收获,下面我们一起来看看吧。处理复杂性...
    99+
    2023-07-05
  • 如何使用Go语言对重定向问题进行处理?
    在网络通信中,重定向是常见的一种情况。当你访问某个网站时,可能会被重定向到另一个网站或页面。在这种情况下,你需要在代码中处理重定向问题,以确保你的程序可以正确地访问目标网站或页面。本文将介绍如何使用Go语言处理重定向问题,并提供演示代码。...
    99+
    2023-09-23
    重定向 leetcode 索引
  • Linux 下如何使用 Java 对象进行重定向?
    在 Linux 下,Java 应用程序常常需要进行文件的输入输出操作,而在实际应用中,我们经常需要将输出结果重定向到文件中,以便后续的处理。本文将介绍如何使用 Java 对象进行重定向操作,并给出相关的代码实例。 一、使用 System....
    99+
    2023-10-10
    重定向 linux 对象
  • Java中如何使用重定向对象进行自然语言处理?
    随着人工智能技术的快速发展,自然语言处理(NLP)已经成为了越来越受关注的热门技术。在Java编程中,我们可以使用重定向对象来实现自然语言处理。 什么是重定向对象? 重定向对象是Java中的一个内置类,它允许我们将标准输入,标准输出和标准...
    99+
    2023-07-26
    重定向 对象 自然语言处理
  • Linux 中如何使用 Java 对象进行重定向操作?
    在Linux中,Java对象的重定向操作是非常常见的。重定向操作是将输出从一个文件描述符或一个命令重定向到另一个文件描述符或命令的过程。在Java中,我们可以使用System类的setOut方法来重定向输出流。 以下是如何在Linux中使用...
    99+
    2023-10-10
    重定向 linux 对象
  • JPA如何使用nativequery多表关联查询返回自定义实体类
    目录JPA nativequery多表关联查询返回自定义实体类JPA多表关联的实现方式优缺点对比使用sql并返回自定义实体类JPA多表关联动态查询(自定义sql语句)实体类注解解释测...
    99+
    2024-04-02
  • 如何使用 Python 框架进行重定向和并发处理?
    Python 是一种流行的编程语言,以其易读易写的代码而闻名。在 Python 中,框架可以帮助开发者更轻松地创建应用程序。本文将介绍如何使用 Python 框架进行重定向和并发处理。 重定向 重定向是将一个网址重定向到另一个网址的过程...
    99+
    2023-11-11
    重定向 并发 框架
  • 如何利用Java中的重定向对象进行自然语言处理?
    自然语言处理(NLP)是人工智能领域中的一个重要分支,它旨在使计算机能够理解、解析和生成人类语言。Java语言作为一种广泛使用的编程语言,提供了许多用于NLP的工具和库。本文将介绍Java中的重定向对象,并演示如何使用它们进行自然语言处理。...
    99+
    2023-07-26
    重定向 对象 自然语言处理
  • 如何在Oracle中使用like查询对下划线进行处理
    如何在Oracle中使用like查询对下划线进行处理?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。原因分析下划线“_”在oracle中不是单纯的表示下划线的意思,而是表示匹...
    99+
    2023-06-14
  • Java中如何使用函数处理大数据并进行重定向?
    在Java编程中,我们经常需要处理大量的数据,这些数据可能来自于文件、网络或数据库等数据源。对于这些数据,我们通常需要进行一系列的操作,比如过滤、排序、统计等。如果我们直接使用循环来处理这些数据,效率会非常低下。因此,在Java中,我们通...
    99+
    2023-08-23
    函数 大数据 重定向
  • Spring大数据:如何使用Python进行重定向和数据处理?
    Spring大数据是一个非常流行的开源框架,它提供了一套完整的解决方案来处理大规模数据。在实际应用中,我们通常需要对大量数据进行重定向和数据处理,而Python语言则是处理这些任务的一种优秀的选择。在本文中,我们将介绍如何使用Python...
    99+
    2023-08-24
    重定向 spring 大数据
  • Java 中如何使用 Linux 系统进行重定向操作和对象传递?
    Linux 系统是一个广泛使用的操作系统,而 Java 作为一门跨平台的编程语言,也可以很好地与 Linux 系统进行交互。本文将介绍 Java 中如何使用 Linux 系统进行重定向操作和对象传递,并提供相应的演示代码。 一、重定向操作...
    99+
    2023-10-10
    重定向 linux 对象
  • 如何将 REPLACE() 与 UPDATE 子句一起使用来对表进行永久更改?
    我们知道 REPLACE() 函数用于将字符串中出现的一个子字符串替换为另一个子字符串。我们还可以使用 REPLACE 函数和 UPDATE 语句来更新表。以下示例将演示它 -示例mysql> Update Student s...
    99+
    2023-10-22
  • PHP如何使用用户定义的比较函数按值对数组进行排序
    这篇文章将为大家详细讲解有关PHP如何使用用户定义的比较函数按值对数组进行排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 使用用户定义的比较函数按值对数组进行排序 简介 在 PHP 中,我们可以...
    99+
    2024-04-02
  • PHP如何使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
    这篇文章将为大家详细讲解有关PHP如何使用用户自定义的比较函数对数组中的值进行排序并保持索引关联,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP使用自定义比较函数对数组排序 概述 PHP提供了usor...
    99+
    2024-04-02
  • 如何使用ASP文件和重定向技术来进行自然语言处理?
    在当今信息时代,自然语言处理技术越来越受到人们的关注。然而,要想进行自然语言处理,我们需要使用相应的工具和技术。本文将介绍如何使用ASP文件和重定向技术来进行自然语言处理。 ASP文件是一种动态网页技术,可以在网页上嵌入VBScript脚本...
    99+
    2023-07-29
    文件 重定向 自然语言处理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作