首页 > 解决方案 > 在 Oracle 中,我想创建一个“路由接口”,它根据参数插入到单独的表中

问题描述

我需要找到以下问题的解决方案:应该有一个通用且单一的“接口”,我可以在 insert into 语句中使用,如下所示:insert into INTERFACE (fields) select ... 但是接口后面有许多具有相同结构的表,这应该决定基于值列表(进入字段)将数据放在哪里。这些表现在按范围间隔(每天)进行分区。

我正在考虑拥有一个无法选择的复合分区表,以避免在单个选择查询中混合不同类型的数据,但在其顶部创建视图。在这种情况下,表应该像这样进行分区:按列表字段分区按范围间隔进行分区。但是 oracle 12 不支持这个。

知道如何解决这个问题吗?(我需要一个接口以及为什么我必须单独存储数据是有原因的。)

先感谢您!

标签: oracleoracle12cpartitioning

解决方案


INSERT ALL语法可以帮助根据条件轻松地将数据路由到特定表:

create table interface1(a number, b number);
create table interface2(a number, b number);

insert all
    when a <= 1 then
        into interface1
    else
        into interface2
select '1' a, 2 b from dual;

推荐阅读