如何使用Cursor比较它的元素?

时间:2015-10-08 08:44:43

标签: oracle plsql

我想在PL / SQL中使用游标。 我想比较光标的元素。 例如,我有一个JOB表,这个表包含job_number,我想比较job_number,以查找此表中是否有相同的job_number

declare
  jobisn    job.job_number%type;
  cursor c1 is
    select t.job_isn
      from job t; 
begin 
for i in c1 loop -- what should I code here ?

2 个答案:

答案 0 :(得分:2)

你可以简单地使用本机sql来做到这一点。通过这样做,您可以知道该工作号码出现在该表上的次数:

       select job_number, count(job_number) over(partition by job_number) from job;

答案 1 :(得分:1)

你可以用一个sql语句来实现这一点 -

select job_isn, count(*)
from job
group by job_isn
having count(*) > 1;

如果你想用光标做它(尽管它较慢而且不适合你的需要),只需在光标内运行这段代码 -

select count(*)
into v_num_jobs
from job
where job_isn = i.job_isn;

if v_num_jobs > 1 then
    dbms_output.put_line(i.job_isn||' job has duplicates');
endif;