Я изучаю PL / SQL и не знаю, с чего начать написание процедуры.
У меня есть две таблицы, одна с названием отдела, диапазон идентификаторов от и диапазон идентификаторов до.И еще одна таблица, которая должна иметь все значения в этих диапазонах.
-- table_a
CREATE TABLE table_a (
D_ID number not null primary key,
DEPT VARCHAR(10),
ID_FROM VARCHAR(7),
ID_TO VARCHAR(7),
IS_POP varchar(1) check(IS_POP IN ('Y', 'N'))
);
--values in table a
INSERT INTO table_a values (1, 'abc', 'A10', 'A100', 'Y');
INSERT INTO table_a values (2, 'def', 'B10', 'B50', 'N');
INSERT INTO table_a values (3, 'ghi', 'C01', 'C25', 'N');
--table_b
CREATE TABLE table_b (
D_id number,
ID_NUM VARCHAR(7) primary key,
STATUS VARCHAR(8) CHECK (status IN ('Free','Taken')),
CONSTRAINT fk_interval FOREIGN KEY (D_id) REFERENCES table_a (D_ID)
);
Я пытаюсь написать процедуру, чтобы заполнить table_b значениями, сгенерированными из table_a, где поле IS_POP имеет значение «N», и изменить его на «Y» при создании значений.Поэтому в table_b должны быть записи с 66 строками, например,
D_id ID_NUM STATUS
2 B10 Free
2 B11 Free
2 B12 Free
2 B13 Free
...
3 C24 Free
3 C25 Free