Oracle12.2怎么用对象数据类型来重定义表
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,本篇内容介绍了"Oracle12.2怎么用对象数据类型来重定义表"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年11月11日Oracle12.2怎么用对象数据类型来重定义表
本篇内容介绍了"Oracle12.2怎么用对象数据类型来重定义表"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Oracle 12.2使用对象数据类型来重定义表,下面的例子将重定义表将列改变为对象属性,原始表为customer,定义如下:
SQL> create table jy.customer( 2 cid number not null, 3 name varchar2(30), 4 street varchar2(100), 5 city varchar2(30), 6 state varchar2(2), 7 zip number(5) 8 );Table createdSQL> alter table jy.customer add constraint customer_pk primary key(cid);Table altered
创建新的对象类型
SQL> create type jy.addr_t as object 2 ( 3 street varchar2(100), 4 city varchar2(30), 5 state varchar2(2), 6 zip number(5,0) 7 ); 8 9 /Type created
联机重定义操作如下:
1.用要执行联机重定义操作的用户登录数据库
SQL> conn jy/jy@jypdbConnected.
2.验证表是否可以执行联机重定义,可以使用主键或伪主键来执行验证操作。
SQL> begin 2 dbms_redefinition.can_redef_table( 3 uname => 'jy', 4 tname =>'customer', 5 options_flag => DBMS_REDEFINITION.CONS_USE_PK); 6 end; 7 /PL/SQL procedure successfully completed
3.创建中间表jy.int_customer
SQL> create table jy.int_customer 2 ( 3 cid number, 4 name varchar2(30), 5 addr addr_t 6 );Table created
4.因为customer是一个非常大的表,为了让下一步操作启用并行执行以下语句:
SQL> alter session force parallel dml parallel 4;Session alteredSQL> alter session force parallel query parallel 4;Session altered
5.使用主键来执行重定义操作
SQL> begin 2 dbms_redefinition.start_redef_table( 3 uname => 'jy', 4 orig_table => 'customer', 5 int_table => 'int_customer', 6 col_mapping => 'cid cid, name name, 7 addr_t(street, city, state, zip) addr'); 8 end; 9 /PL/SQL procedure successfully completed
6.复制依赖对象
SQL> declare 2 num_errors pls_integer; 3 begin 4 dbms_redefinition.copy_table_dependents( 5 uname => 'jy', 6 orig_table => 'customer', 7 int_table => 'int_customer', 8 copy_indexes => DBMS_REDEFINITION.CONS_ORIG_PARAMS, 9 copy_triggers => TRUE, 10 copy_constraints => TRUE, 11 copy_privileges => TRUE, 12 ignore_errors => FALSE, 13 num_errors => num_errors, 14 copy_statistics => TRUE); 15 end; 16 /PL/SQL procedure successfully completed
7.可选操作同步中间表
SQL> begin 2 dbms_redefinition.sync_interim_table( 3 uname => 'jy', 4 orig_table => 'customer', 5 int_table => 'int_customer'); 6 end; 7 /PL/SQL procedure successfully completed
8.完成重定义操作
SQL> begin 2 dbms_redefinition.finish_redef_table( 3 uname => 'jy', 4 orig_table => 'customer', 5 int_table => 'int_customer'); 6 end; 7 /PL/SQL procedure successfully completed
SQL> select dbms_metadata.get_ddl(object_type =>'TABLE',name =>'CUSTOMER',schema => 'JY') from dual;DBMS_METADATA.GET_DDL(OBJECT_TYPE=>'TABLE',NAME=>'CUSTOMER',SCHEMA=>'JY')-------------------------------------------------------------------------------- CREATE TABLE "JY"."CUSTOMER" ( "CID" NUMBER NOT NULL ENABLE, "NAME" VARCHAR2(30), "ADDR" "JY"."ADDR_T" , CONSTRAINT "CUSTOMER_PK" PRIMARY KEY ("CID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "TEST" ENABLE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "TEST"1 row selected.可以看到表jy.customer已经成功能联机重定义
9.等待任何查询中间表的语句执行完成后将其删除
SQL> desc jy.customerName Type Nullable Default Comments---- ------------ -------- ------- --------CID NUMBERNAME VARCHAR2(30) YADDR ADDR_T YSQL> drop table jy.customer purge;Table dropped
到此重定义操作就完成了。
"Oracle12.2怎么用对象数据类型来重定义表"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
对象
数据
类型
内容
更多
知识
语句
验证
原始
实用
学有所成
接下来
例子
功能
困境
实际
属性
情况
数据库
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
派出所网络安全警示教育简报
宁波慈溪lenovo塔式服务器
银行软件开发技术要求
福建上位机软件开发
蓝思网络技术 钟江华
日本手机无服务器
计算机网络技术物理层
数据库id怎么自动排序
网络安全产业包括什么内容
jsp连接数据库代码
asp 服务器 绿色
服务器智能化机柜-推广-广告
数据库中 数据列 汇总
登录公安网络安全平台
cc 开发软件开发
单机数据库 用什么软件下载
掌握网络安全知识
软件开发人员从业资格
昆明cop15小佳网络技术
c 多线程 数据库类
山西iptv网络安全等级
网络安全的内容四年级
顺流软件开发
魔兽世界单机版数据库设置表中文
智能软件开发销售价格
网络安全的本质与内容
网络安全与执法属于工学
长沙电信服务器托管
奥歌点歌机服务器
浙江省网络安全学院官网