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

能否创建包含DBMS_CLOUD.EXPORT_DATA导出分区的ADB混合分区表

关于ADB混合分区表创建的解答

结论

可以创建满足要求的自治数据库(ADB)混合分区表,Oracle ADB原生支持同时包含内部分区、和基于Data Pump格式转储文件构建的外部分区的混合分区结构,非常适合冷热数据分层存储的场景。

核心操作要求

  • 你通过DBMS_CLOUD.EXPORT_DATA导出数据时,必须指定导出格式为DATAPUMP,且导出的转储文件需存放在ADB可访问的对象存储位置,同时提前创建好有权限读取该存储位置的云凭证。
  • 外部分区的列定义必须和转储文件导出时的表结构完全一致,避免出现字段类型、数量不匹配的报错。

示例操作代码

1. 导出Data Pump格式归档数据

BEGIN
  DBMS_CLOUD.EXPORT_DATA(
    credential_name => 'YOUR_OBJ_STORAGE_CRED',
    file_uri_list   => 'https://objectstorage.<你的区域>.oraclecloud.com/n/<你的命名空间>/b/<你的桶名>/o/hist_data_%U.dmp',
    format          => JSON_OBJECT('type' VALUE 'datapump'),
    query           => 'SELECT * FROM 源表 WHERE 分区键字段 < 20200101'
  );
END;
/

2. 创建混合分区表

CREATE TABLE 混合分区表(
  id NUMBER,
  分区键字段 DATE,
  业务字段1 VARCHAR2(200),
  业务字段2 NUMBER
)
PARTITION BY RANGE (分区键字段) (
  -- 冷数据外部分区,指向导出的Data Pump转储文件
  PARTITION p_hist VALUES LESS THAN (TO_DATE('2020-01-01', 'YYYY-MM-DD'))
    EXTERNAL (
      TYPE ORACLE_DATAPUMP
      ACCESS PARAMETERS (
        CREDENTIAL = 'YOUR_OBJ_STORAGE_CRED'
      )
      LOCATION ('https://objectstorage.<你的区域>.oraclecloud.com/n/<你的命名空间>/b/<你的桶名>/o/hist_data_*.dmp')
    ),
  -- 热数据内部分区,存储在ADB本地
  PARTITION p_2020 VALUES LESS THAN (TO_DATE('2021-01-01', 'YYYY-MM-DD')),
  PARTITION p_2021 VALUES LESS THAN (TO_DATE('2022-01-01', 'YYYY-MM-DD')),
  PARTITION p_current VALUES LESS THAN (MAXVALUE)
);

注意事项

  • 基于Data Pump转储文件的外部分区为只读属性,不支持INSERT/UPDATE/DELETE等写入操作,仅适合归档冷数据使用。
  • 混合分区表的查询逻辑和普通分区表完全一致,ADB优化器会自动裁剪不需要访问的分区,无需额外修改查询语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:15:02