powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Переход на следующую итерацию и выход из цикла for
7 сообщений из 7, страница 1 из 1
Переход на следующую итерацию и выход из цикла for
    #39320567
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!

DB2 9.7

В теле хранимой процедуры есть цикл for. Какие операторы позволяют выполнить преждевременный выход из цикла и принудительный переход на следующую итерацию?

Спасибо
С уважением, Семен Попов
...
Рейтинг: 0 / 0
Переход на следующую итерацию и выход из цикла for
    #39320690
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
for c as select * from TAB
do
     If (FLD=1) then 
         break;
     else
         continue;
     end if;
end for


Ругается на continue. break скушал
...
Рейтинг: 0 / 0
Переход на следующую итерацию и выход из цикла for
    #39320716
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Semen Popov,

Добрый день.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
--#SET TERMINATOR @
set serveroutput on@

begin
  declare i int default 1;
  for c1 as select tabschema, tabname from syscat.tables
  do
    call dbms_output.put_line(tabschema||'.'||tabname);
    set i=i+1;
    if (i>5) then 
      goto exit;
    end if;
  end for;
  exit:
  set i=i;
end@
...
Рейтинг: 0 / 0
Переход на следующую итерацию и выход из цикла for
    #39320903
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein, спасибо. Но что-то не подходит

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
create or replace function TMPFUNC (F_PAR integer)
returns integer
reads sql data
no external action
begin 
 declare f_retval integer default 0;
 for cond_ as (select * from MYTAB where COND=F_PAR)
 do
    if (FLD>0) then
    	goto next;
    else
    	goto exit;
    end if;
next:
 end for;
exit:
 return f_retval;
end

DB21034E  Данная команда обрабатывалась как оператор SQL, поскольку она не 
является допустимой командой процессора командной строки.  При обработке SQL 
было получено сообщение:
SQL0104N  Обнаружен неправильный элемент "end for; exit:" после текста ";     
end if; next: ".  Список возможных правильных элементов: "<space>".  LINE 
NUMBER=16.  SQLSTATE=42601
...
Рейтинг: 0 / 0
Переход на следующую итерацию и выход из цикла for
    #39320931
db2sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Переход на следующую итерацию и выход из цикла for
    #39320937
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Semen Popov,
values test_for('SYSCAT')
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
create or replace function test_for(p_tabschema varchar(128))
returns integer
reads sql data
no external action
begin atomic
  declare f_retval int default 0;
  forloop:
  for c1 as select tabname from syscat.tables where tabschema=p_tabschema
  do
    set f_retval=f_retval+1;
    if (f_retval>5) then 
      leave forloop;
    else
      iterate forloop;
    end if;
  end for;
  return f_retval;
end@


...
Рейтинг: 0 / 0
Переход на следующую итерацию и выход из цикла for
    #39320952
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое. Сработало
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Переход на следующую итерацию и выход из цикла for
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]