В Oracle я хочу создать «интерфейс маршрутизации», который вставляется в отдельные таблицы на основе параметров - PullRequest
1 голос
/ 10 октября 2019

Мне нужно найти решение следующей проблемы: должен быть общий и единственный «интерфейс», который я могу использовать при вставке в оператор, что-то вроде этого: insert into INTERFACE (fields) select ... Но есть много таблиц с одинаковой структуройза интерфейсом, который должен решить, основываясь на списке значений (поступающих в поле), куда поместить данные. Таблицы разделены по диапазону (ежедневно).

Я думал о том, чтобы иметь составную многораздельную таблицу, которую нельзя выбрать SELECT, чтобы избежать смешивания разных типов данных в одном запросе выбора, но при этом создаются представления. на вершине этого. В этом случае таблица должна быть разделена следующим образом: разделить список FIELD подразделить на интервал диапазона. Но оракул 12 не поддерживает это.

Есть идеи, как это решить? (Есть причина, по которой мне нужен единый интерфейс и почему я должен хранить данные отдельно.)

Заранее спасибо!

1 Ответ

1 голос
/ 11 октября 2019

Синтаксис 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;
...