我要插入从APP_USER获取的所有gr_number,结果图像附加约11-13提取的gr_numbers。我的目标是我有一个按钮,当我单击按钮时,我想编写一个过程,它将使用循环插入所有gr_numbers每当我单击按钮时,就单击按钮。
这里是我的Gr_numbers结果图像,它是从选择块获得的。在点击按钮上插入所有gr_number时需要enter image description here
代码有错误/错误,它将无法在单击按钮上插入所有的gr_numbers
declare
vtm NUMBER;
tab apex_application_global.vc_arr2;
BEGIN
tab := apex_util.string_to_table (vtm);
SELECT s.gr_number into vtm
FROM student s
left join class_time ct on ct.class_id=s.class_id and
instr(s.class_time, ct.class_time) > 0
where upper(trim(ct.class_id)) = upper(trim(:APP_USER)) and s.gr_number is not null
and is_active_flg = 'Y';
for i in vtm..tab.count loop
begin
insert into STUDENT_CLASS_ATTEND(gr_number, student_id, PERIOD_NEXT_DAY_FLG, attend_date, period_start_dt, period_end_dt, PERIOD_DURATION, course_name, class_time, branch_id, shift_id, teacher_id, class_id, marked_by, course_id, class_uid)
values( :P7_GR_NUMBER, :P7_STUDENT_ID, :P7_PERIOD_NEXT_DAY_FLG, to_date(UPPER(:P7_ATTEND_DATE),'DD-MON-YYYY'), :P7_PERIOD_START_DT, :P7_PERIOD_END_DT, :P7_PERIOD_DURATION, :P7_COURSE_NAME, :P7_CLASS_TIME, :P7_BRANCH_ID, :P7_SHIFT_ID, :P7_TEACHER_ID, :P7_CLASS_ID, :v_employee_id, :P7_COURSE_ID, :P7_CLASS_UID
);
exception WHEN too_many_rows THEN
dbms_output.put_line('Errors fetching are more than one');
end;
end loop;
commit;
end;
如果表中已经有gr_number,那么这应该只是标准的INSERT-SELECT语句
insert into STUDENT_CLASS_ATTEND(
gr_number, student_id, PERIOD_NEXT_DAY_FLG,
attend_date, period_start_dt, period_end_dt,
PERIOD_DURATION, course_name, class_time,
branch_id, shift_id, teacher_id, class_id,
marked_by, course_id, class_uid)
select
s.gr_number, :P7_STUDENT_ID, :P7_PERIOD_NEXT_DAY_FLG,
to_date(UPPER(:P7_ATTEND_DATE),'DD-MON-YYYY'), :P7_PERIOD_START_DT, :P7_PERIOD_END_DT,
:P7_PERIOD_DURATION, :P7_COURSE_NAME, :P7_CLASS_TIME,
:P7_BRANCH_ID, :P7_SHIFT_ID, :P7_TEACHER_ID, :P7_CLASS_ID,
:v_employee_id, :P7_COURSE_ID, :P7_CLASS_UID
FROM student s
left join class_time ct on ct.class_id=s.class_id and
instr(s.class_time, ct.class_time) > 0
where upper(trim(ct.class_id)) = upper(trim(:APP_USER)) and s.gr_number is not null
and is_active_flg = 'Y'