You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19C中如何将表从MyCon schema迁移至sahe schema?

Oracle 19C 迁移MyCon.test表到sahe的方法

方法一:CREATE TABLE AS SELECT(快速复制小表)

适合数据量不大的场景,直接复制表结构和数据,但不会自动复制约束、索引、触发器等对象。

  • 以sahe用户登录数据库,执行以下语句:
CREATE TABLE sahe.test AS SELECT * FROM MyCon.test;
  • 若需要保留原表的约束、索引等,需手动创建:
    1. 以拥有DBA权限的用户执行,获取原表的DDL:
    SELECT DBMS_METADATA.GET_DDL('TABLE', 'TEST', 'MYCON') FROM DUAL;
    
    1. 将输出DDL中的MYCON替换为SAHE,在sahe用户下执行该DDL创建空表,再执行数据插入:
    INSERT INTO sahe.test SELECT * FROM MyCon.test;
    COMMIT;
    

方法二:数据泵导出导入(完整迁移所有对象)

适合大表或需要完整保留表所有属性(约束、索引、触发器等)的场景。

步骤1:创建并授权数据泵目录(若未存在)

以拥有DBA权限的用户(如sys)登录,执行:

-- 创建目录对象(替换为实际的操作系统路径)
CREATE DIRECTORY dump_dir AS '/opt/oracle/dump';
-- 授予读写权限给相关用户
GRANT READ, WRITE ON DIRECTORY dump_dir TO MyCon, sahe;

步骤2:导出MyCon下的test表

在操作系统终端执行数据泵导出命令:

expdp MyCon/MyCon_password@your_oracle_service schemas=MyCon tables=test dumpfile=test_dump.dmp logfile=test_export.log directory=dump_dir

步骤3:导入到sahe用户

在操作系统终端执行数据泵导入命令,通过remap_schema参数映射原schema到目标schema:

impdp sahe/sahe_password@your_oracle_service remap_schema=MyCon:sahe tables=test dumpfile=test_dump.dmp logfile=test_import.log directory=dump_dir

注意事项

  • 若test表包含LOB字段、分区或其他特殊对象,优先选择数据泵方法,能保证迁移完整性。
  • 操作前建议备份原表,避免数据丢失。

内容的提问来源于stack exchange,提问作者henrry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 23:09:22