lob
字段特殊,在建表存储的时候系统就特殊处理
lob
字段的存储,所以导入导出的时候不按通常表来处理,真够郁闷的。
现在只好想别的办法了,表很多,挨个在新表空间建表多麻烦啊,还要找建表的
sql
。可是先导入再用工具改或者用
move
命令,都一样,一百多个
lob
字段的表啊
!!
还有
toad
只找到试用版,不知道改变表的表空间的功能可不可以用。
后来想起自己常用的
PLSQL Developer
是不是也有这样的功能,就去看了看,好像没有改变表空间的功能,但是有导出当前用户所有
Object
的功能,生成的是所有
object
(表和视图)的
create
的
sql
文件。
导出选项如图
在新用户下执行导出的sql文件,再在sqlplus下将老用户导出的备份覆盖导入新表空间, 然后我进去查询,发现一切 OK 啦.
总结过程:
1. 建立新的表空间
2. 建立新用户,默认表空间为刚建立的新的表空间
3. 设定用户权限, quota 还是要设定一下。
4. 从原用户导出数据:
1. 建立新的表空间
2. 建立新用户,默认表空间为刚建立的新的表空间
3. 设定用户权限, quota 还是要设定一下。
4. 从原用户导出数据:
exp username/password file=filename owner=username rows=y grants=y ;
5. 从原用户那里,用 PLSQL Developer (其他的工具也可以)导出原用户的所有 object ,生成 sql 文件。
6. 编辑 sql 文件,替换所有的旧表空间为新表空间。
7. 用新用户登录,并执行 sql 文件,生成表结构
8. 执行 Imp 导入数据:
imp newusername/password file=filename log=logfile fromuser=olduser touser=newuser ignore=y
9. 查看新用户下的表的存储情况,确定完全存放在新的表空间下面:
select table_name,tablespace_name from user_tables;
如果没有lob字段的表,不用执行5、6、7三步。