Oracle命令行如何复制表及数据?

Oracle命令行中通过SQL语句(如CREATE TABLE…AS SELECT或INSERT…SELECT)实现表结构或数据复制,需注意权限、约束及数据类型兼容性。

复制表结构(不含数据)

场景:仅复制源表结构,不复制数据。
命令

CREATE TABLE 新表名 AS SELECT * FROM 源表名 WHERE 1=0;

示例

CREATE TABLE employees_copy AS SELECT * FROM employees WHERE 1=0;

说明
WHERE 1=0 确保条件永远为假,故只复制结构,不复制数据。


复制表结构及全部数据

场景:完整复制表结构和所有数据。
命令

CREATE TABLE 新表名 AS SELECT * FROM 源表名;

示例

CREATE TABLE employees_full_copy AS SELECT * FROM employees;

复制表的部分数据

场景:复制表结构及符合条件的数据。
命令

CREATE TABLE 新表名 AS SELECT * FROM 源表名 WHERE 条件;

示例(复制部门ID为10的员工):

CREATE TABLE dept10_employees AS SELECT * FROM employees WHERE department_id = 10;

复制表结构(包含索引、约束等)

需分两步操作

  1. 仅复制结构
    CREATE TABLE 新表名 AS SELECT * FROM 源表名 WHERE 1=0;
  2. 手动复制索引/约束
    通过DBMS_METADATA生成源表的DDL语句(需在SQL*Plus中执行):

    SET LONG 1000000
    SELECT DBMS_METADATA.GET_DDL('TABLE', '源表名') FROM DUAL;

    修改输出结果中的表名后执行,重建索引和约束。


跨用户/跨数据库复制

场景:从用户A的表复制到用户B的表。
步骤

  1. 在目标用户下执行:
    CREATE TABLE 新表名 AS SELECT * FROM 源用户.源表名;
  2. 若需跨数据库,先用数据库链接(DBLINK):
    CREATE DATABASE LINK dblink_name CONNECT TO 用户名 IDENTIFIED BY 密码 USING '远程服务名';
    CREATE TABLE 本地表名 AS SELECT * FROM 表名@dblink_name;

注意事项

  1. 权限要求
    • 执行CREATE TABLE需要CREATE TABLE权限。
    • 访问其他用户的表需SELECT ANY TABLE或显式授权。
  2. 不复制的内容
    • 自动生成的CTAS操作不包含索引、约束、注释、触发器等,需手动重建。
  3. 性能优化
    • 大表复制时启用并行(需Oracle企业版):
      CREATE TABLE 新表名 PARALLEL 4 AS SELECT * FROM 源表名;
    • 使用NOLOGGING减少日志(谨慎操作):
      CREATE TABLE 新表名 NOLOGGING AS SELECT * FROM 源表名;
  4. 存储管理

    新表默认使用当前用户的默认表空间,需确保表空间充足。


验证复制结果

-- 检查行数
SELECT COUNT(*) FROM 新表名; 
-- 对比数据
SELECT * FROM 新表名 MINUS SELECT * FROM 源表名;  -- 应返回0行

引用说明

本文参考Oracle官方文档:

  • CREATE TABLE AS SELECT (CTAS)
  • DBMS_METADATA使用指南
    操作前请确保符合数据库安全规范,生产环境建议备份数据。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9278.html

(0)
酷番叔酷番叔
上一篇 2025年7月30日 13:18
下一篇 2025年7月30日 13:33

相关推荐

  • 安全事件如何评估好坏?

    从多维度理性审视在数字化时代,安全事件已成为个人、企业乃至国家无法回避的议题,每当数据泄露、系统瘫痪或网络攻击等事件发生,人们的第一反应往往是将其视为纯粹的负面问题,若跳出“非黑即白”的思维定式,从多维度理性审视,安全事件并非全然有害,甚至可能成为推动进步的契机,本文将从直接危害、潜在价值、应对策略及长期影响四……

    2025年11月28日
    16400
  • 安全情报的实际效果怎么样?价值评估与获取方法探讨

    安全情报作为网络安全领域的核心驱动力,正在从“辅助工具”转变为“战略资产”,它通过对威胁数据的收集、分析、研判和共享,帮助组织从被动防御转向主动预警,实现对未知风险的提前感知和精准处置,在数字化加速渗透的今天,安全情报的价值不仅体现在技术防护层面,更延伸至业务连续性、合规管理和战略决策等多个维度,但其应用效果也……

    2025年10月20日
    15900
  • 吉林省域名备案程序_备案域名FAQ

    吉林省域名备案是网站在国内合法运营的法定前置条件,任何未取得备案号的网站均无法通过国内服务器正常访问,备案流程并不复杂,但细节决定成败,只要提前备齐材料、选对服务商并遵循规范操作,通常可在 20 个工作日内 完成审核,下面从备案程序、材料准备、注意事项三个维度展开,并结合酷番云的实际经验给出优化建议,吉林省域名……

    2026年8月24日
    3100
  • 简易PHP企业网站源码怎么下载?企业网站源码

    简易PHP企业网站源码的核心价值不在于“免费”或“简单”,而在于快速部署、轻量运维与精准匹配中小企业业务需求,对于预算有限、追求实效的企业而言,选择一套架构清晰、代码规范、易于二次开发的PHP源码,配合稳定的云基础设施,完全可以在一周内上线一个具备营销转化能力的品牌官网,其综合效能远超盲目追求“功能大而全”的定……

    2026年8月25日
    2600
  • jquery素材网站有哪些?,jquery素材网站推荐哪个好?

    选择jQuery素材网站,应优先关注资源质量、更新频率与文档完整性,推荐如jQuery Rain、jQuery Script、CodePen等专业平台,它们提供经过社区验证的代码片段和插件,能显著提升开发效率并降低兼容性风险,jQuery素材的价值与适用场景jQuery素材包括插件、特效、UI组件、工具函数等……

    2026年8月19日
    2700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信