加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长百科 > 正文

database – Oracle – 将数据导入到具有不同名称的表中?

发布时间:2021-04-01 21:19:52 所属栏目:站长百科 来源:网络整理
导读:我有一个从Oracle表导出的大型(多GB)数据文件.我想将此数据导入另一个Oracle实例,但我希望表名与原始表不同.这可能吗?怎么样? 导入和导出系统都是Oracle 11g.该表包含BLOB列,如果这有任何区别. 谢谢! 更新: 这里的想法是更新表,同时将系统的停机时间保持

我有一个从Oracle表导出的大型(多GB)数据文件.我想将此数据导入另一个Oracle实例,但我希望表名与原始表不同.这可能吗?怎么样?

导入和导出系统都是Oracle 11g.该表包含BLOB列,如果这有任何区别.

谢谢!

更新:

这里的想法是更新表,同时将系统的停机时间保持在最低限度.解决方案(基于Vincent Malgrat的答案和APC的更新)是:

>假设我们的表名是A.
>制作临时模式TEMP_SCHEMA
>将我们的数据导入TEMP_SCHEMA.A
> CREATE REAL_SCHEMA.B AS SELECT * FROM TEMP_SCHEMA.A
> DROP TABLE REAL_SCHEMA.A将REAL_SCHEMA.A重命名为REAL_SCHEMA.A_OLD
>将REAL_SCHEMA.B重命名为REAL_SCHEMA.A
> DROP REAL_SCHEMA.A_OLD

这样,停机时间仅在步骤4和5期间,两者都应与数据大小无关.如果这不起作用,我会在这里发布更新:-)

解决方法

我想你想要在已经使用名称的模式中导入表.我不认为你可以在导入过程中更改表名.但是,您可以使用FROMUSER和TOUSER选项更改架构.这将允许您在另一个(临时)架构中导入表.

完成后,使用CREATE TABLE AS SELECT将表复制到目标模式.与导入相比,复制表所需的时间可以忽略不计,因此不会浪费太多时间.在操作过程中,您将需要两倍的磁盘空间.

更新

正如Gary所建议的那样,一个更聪明的方法是在临时模式中创建一个视图或同义词,该模式引用目标模式中的新表.导入后您不需要复制数据,因为它将直接通过目标表.

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读