В моей хранимой процедуре я хочу, чтобы значение col1 & col2 совпадало с сотрудником, а затем вставлял уникальную запись сотрудника.Если не найдено, сопоставьте значение col1 , col2 & col3 с соответствием employee , затем введите значение,Если также не найдено при совпадении всех этих столбцов, вставьте запись, используя другой столбец.
Также еще одна вещь, которую я хочу найти список значений, таких как emp_id , передав значение другого столбца иесли отдельная запись не может совпадать , тогда сделайте emp_id как NULL .
Также я хочу вставить одну запись за раз после совпадения с txt вместе с другими таблицами, имеющими такие данные, как emp .
create or replace procedure sp_ex
as
cursor c1 is select * from txt%rowtype;
v_col1 tbl1.col1%type;
type record is table of txt%rowtype; --Staging table
v_rc record := record();
begin
open c1;
loop
fetch c1 bulk collect into v_rc limit 1000;
loop
for i in 1..v_rc.count loop
select col1 into v_col1 from tbl1
where exists (select col1 from tbl1 where tbl1.col1 = emp.col1);
insert
when txt.col1 = emp.col1 and txt.col2 = stud.col2 then
into main_table(columns) values(v_rc(i).col1, ...)
when txt.col1 = emp.col1 and txt.col2 = stud.col2 and txt.col3 = stud.col3 then
into main_table(columns) values(v_rc(i).col1, ...)
else
insert into main_table(columns) values(v_rc(i).col1, ...)
select * from txt;
end loop;
exit when v_rc.count < limit;
end loop;
close c1;
end sp_ex;
В то время как emp , stud различнытаблицы, где я должен соответствовать с txt .В этом сохраненном процессе я хочу загрузить данные из txt в main_table в режиме пакетной обработки.Данные будут сопоставляться по одной записи, затем после, если совпадающие условия совпадают, затем загружаться в основную таблицу.Как я могу создать хранимый процесс, чтобы данные загружались вышеупомянутой логикой один за другим в пакетной обработке.Не могли бы вы помочь мне поделиться своей идеей.Спасибо