在 Oracle 中,我想创建一个 "routing interface" ,它根据参数插入到单独的表中
In Oracle I want to create a "routing interface" which insert into separate tables based on parameter
我需要找到以下问题的解决方案:应该有一个通用且单一的 "interface",我可以在 insert into 语句中使用它,如下所示:insert into INTERFACE (fields) select ...
但是在界面后面有许多具有相同结构的 table 应该根据值列表(来自字段中)来决定将数据放在哪里。 table 现在按范围间隔(每天)划分。
我正在考虑有一个复合分区 table,它不能被 SELECT 编辑以避免在单个 select 查询中混合不同类型的数据,但是在最重要的是。在这种情况下,table 应该像这样进行分区:按列表 FIELD 按范围间隔进行子分区。但是oracle 12不支持这个。
知道如何解决这个问题吗? (这里有我需要单一接口以及为什么我必须单独存储数据的原因。)
提前致谢!
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;
我需要找到以下问题的解决方案:应该有一个通用且单一的 "interface",我可以在 insert into 语句中使用它,如下所示:insert into INTERFACE (fields) select ...
但是在界面后面有许多具有相同结构的 table 应该根据值列表(来自字段中)来决定将数据放在哪里。 table 现在按范围间隔(每天)划分。
我正在考虑有一个复合分区 table,它不能被 SELECT 编辑以避免在单个 select 查询中混合不同类型的数据,但是在最重要的是。在这种情况下,table 应该像这样进行分区:按列表 FIELD 按范围间隔进行子分区。但是oracle 12不支持这个。
知道如何解决这个问题吗? (这里有我需要单一接口以及为什么我必须单独存储数据的原因。)
提前致谢!
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;