Идентификатор для вложенных циклов? - PullRequest
0 голосов
/ 17 января 2020

сейчас я изучаю вложенные циклы в PL / SQL. Чтобы различить guish циклы, я должен использовать метки типа "external_l oop" и "inner_l oop".

Мой вопрос:

Что происходит, когда у меня есть больше двух петель, которые вложены? Какой будет идентификатор третьего l oop, например? Может быть "inner_inner_l oop"?

Заранее спасибо!

1 Ответ

1 голос
/ 18 января 2020

Под «знаками» вы подразумеваете то, что Oracle называет ярлыками. Метки являются свободным текстом, и вы можете использовать любые слова, которые вам нравятся. Лучше всего использовать что-то, что описывает назначение l oop: outer_loop, innr_loop - немного ме. Ярлыки - это возможность сделать наш код более понятным, поэтому максимально используйте его.

Ниже приведена лишь демонстрация того, как использовать ярлыки. Я не предполагаю, что это лучший способ реализовать код. Действительно, множество вложенных циклов часто является красным флагом.

<< departments >>
for d_rec in ( select * from dept ) loop 
  ..
  << employees >>
  for e_rec in ( select * from emp where emp.deptno = d_rec.dept_no ) loop
    ..
    << projects >>
    for p_rec in ( select * from proj where proj.empno = e_rec.emp_no ) loop
      ..
    end loop projects;
  end loop employees;
end loop departments;
...