迁移long类型对象 SQL> copy from hr/hr@ora9i INSERT test1 using select * from test;

来源:互联网 发布:广东省干部网络学校 编辑:程序博客网 时间:2024/06/05 01:59

迁移long类型对象

 (2008-06-23 17:44:49)
转载
标签: 

it

分类: oracle基础

在帮客户进行数据库巡检时发现,客户的库是从8i升级到9i的,因此,很多表空间仍然使用了原有的字典管理表空间模式,而这种模式的空间管理性能很差,因此建议客户将这些表空间全部换成本地管理的表空间,经过沟通,客户也认可此建议,因此,今晚开始实施。
实施之前,对整个数据库进行了备份,这是传统,也是本能(希望以后做dba的朋友们也能养成这样的习惯,当然,这次的备份倒是没派上什么用处)
丢弃字典管理表空间换成本地管理倒也不难,新创建本地管理表空间,然后把原来字典管理表空间上的存储对象移动过来就是了,对于表可以使用move,对于索引可以使用rebuild。
一切都很顺利,直到遇到了long类型字段。在move一个table时遇到了一个错误,这个表包含了long类型字段,因此无法直接move到新的位置,此时的处理方式大概有下面几个:
1、如果表中没有数据,呵呵,最简单的情况,可以直接将该表的定义用dbms_metadata.get_ddl取出,然后将表删除,修改刚才取出的ddl语句中的表空间名称定义,然后重新创建表在新的表空间上即可。当然,有数据这样作就不一定合适了
2、用exp导出,然后将原表删除,创建表到本地管理表空间上,然后导入数据,在导入的时候使用选项ignore=y(因为表已经存在)
也可以在导入之前将用户的默认表空间指向新的本地管理表空间,并且将原字典管理表空间的quota设置为0,导入也会将表生成在新的表空间上
3、在新表空间上创建出新表,使用sqlplus中的copy命令将原表数据插入新表,然后删除原表,再将新表名改为原表名(当然表上相关的索引、约束、触发器的定义要事先保存好,以便重建)。例如:
SQL> create table test(c1 varchar2(20),c2 long);

表已创建。

SQL> insert into test values('abc','abc');

已创建 1 行。

SQL> commit;

提交完成。

SQL> create table test1
2 as
3 select * from test;
select * from test
*
ERROR 位于第 3 行:
ORA-00997: 非法使用 LONG 数据类型

SQL> create table test1
2 (c1 varchar2(20),c2 long)
3 tablespace users;

SQL> copy from hr/hr@ora9i INSERT test1 using select * from test;

数组读取/结合的大小为15。(数组大小为15)
将在完成时提交。(提交的复本为 0)
最长为80。(长度为80)
1行选自
hr@ora9i
1行被插入TEST1
1行已提交至TEST1(位于DEFAULT HOST连接)。

SQL> drop table test;

表已丢弃。

SQL> rename test1 to test;

表已重命名。

4、将long类型数据修改为lob类型(Oracle也建议以后用lob取代long,但需要考虑对应用是否有影响),然后再执行move
SQL> alter table test move tablespace users;
alter table test move tablespace users
*
ERROR 位于第 1 行:
ORA-00997: 非法使用 LONG 数据类型

SQL> alter table test modify(c2 clob);

表已更改。
SQL> create table test2
2 as
3 select * from test;

表已创建。
SQL> alter table test move tablespace users;

表已更改。

摘自:http://ora-600.itpub.net/post/203/461706


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝吐奶咳嗽了可能被呛到怎么办 床下面的液压支架支撑不了了怎么办 沙发的海绵垫坐着感觉太硬怎么办 修公路占地补偿盖房子房产证怎么办 哺乳期乳房有硬块挤不出来怎么办 老公投的公司倒闭了钱怎么办 小丑鱼老在缸上边游不下去怎么办 海缸养珊瑚又想养蝴蝶鱼怎么办 被几个月的小狗咬了怎么办 木本植物继代长出大量愈伤怎么办 钱兜树叶子发黄掉叶怎么办 手机qq群200人满了怎么办 支票被背书人的章盖浅了怎么办 没病装病的心理病患者怎么办 20多岁被骗40多万怎么办 一个学生上课爱捣乱班级课堂怎么办 军训的时候大姨妈来了怎么办 笔记本连接无线网说链接限制怎么办 12306密码和邮箱都忘了怎么办 烦恼都是自找的新书散页了怎么办 白色衣服被红色衣服染了怎么办 手机微信里面不能拍手功怎么办 肇事逃逸轻伤且对方不私了怎么办 数学差怎么办脑子不好啊数学学不老 手机号丢失微信密码丢失怎么办找回 悦借钱输入五次密码被锁怎么办 生源地助学贷款密码忘了怎么办 生源地助学贷款登录密码忘了怎么办 助学贷款支付宝密码忘了怎么办 微信密码忘记了手机号也换了怎么办 换手机号了微信密码忘记了怎么办 qq密码忘记了手机号也换了怎么办 一年只能修改一次昵称我能怎么办 华为手机的账号和密码丢失怎么办 华为手机的账号和密码丢失了怎么办 手机号被别人注册了微博怎么办 微博账号一天内多次解冻怎么办 露娜注册时邮箱填错了怎么办 苹果4s手机显示已停用怎么办 新买的微博小号太多内容了怎么办 向海关申报价格低于实际价格怎么办