在网上找了很多代码都是有问题的,所以自己记下自己写的代码,用于下次要用的时候直接复制过来调用,大家如果要用的话可以把模板拷贝过去,然后修改具体里面的细节
create or replace procedure deleteRepeatChoiceCourseData
asuser_id varchar2(100);
seme_course_id varchar2(100);
/************选课的游标************/
cursor choiceCourseCursor is
select user_id,seme_cour_id from t_teach_choice_course
group by user_id,seme_cour_id having count(1) >1;
/*********缴费的游标********/
cursor fiPaymentRecordCursor is
select charge_item_id,student_id,course_seme_id from t_fi_payment_record
group by charge_item_id,student_id,course_seme_id having count(1) > 1;
/**********成绩的游标***************/
cursor resultCursor is
select user_id,seme_cour_id from t_teach_result
group by user_id,seme_cour_id having count(1) >1;
begin
/*****************循环执行选课表t_teach_choice_course 的重复数据start *********/
dbms_output.put_line('************delete t_teach_choice_course data start***********');
for choiceCourseTemp in choiceCourseCursor loop
dbms_output.put_line(choiceCourseTemp.user_id||'**'||choiceCourseTemp.seme_cour_id);
end loop;
dbms_output.put_line('************delete t_teach_choice_course data start***********');
/*****************循环执行缴费表 t_fi_payment_record 的重复数据start *********/
dbms_output.put_line('************delete t_fi_payment_record data start***********');
for fiPaymentRecordTemp in fiPaymentRecordCursor loop
dbms_output.put_line(fiPaymentRecordTemp.student_id||'**'||fiPaymentRecordTemp.course_seme_id);
end loop;
dbms_output.put_line('************delete t_fi_payment_record data start***********');
/*****************循环执行缴费表 t_fi_payment_record 的重复数据end***********/
/*****************循环执行成绩表 t_teach_result 里面的重复数据start *********/
dbms_output.put_line('************delete t_teach_results data start***********');
for resultTemp in resultCursor loop
dbms_output.put_line(resultCursor.user_id||'**'||resultCursor.seme_cour_id);
end loop;
dbms_output.put_line('************delete t_teach_results data start***********');
/*****************循环执行成绩表 t_teach_results 里面的重复数据end***********/
end deleteRepeatChoiceCourseData;