powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / SQL20267N в функции и далее
5 сообщений из 30, страница 2 из 2
SQL20267N в функции и далее
    #33807617
ValPot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На

Код: plaintext
1.
2.
3.
insert into t2 ( p1 )
  with WT as (select p1 from  table( func(param) ) as T )           
  select p1 from WT

я получаю 20165N. Не идет.
...
Рейтинг: 0 / 0
SQL20267N в функции и далее
    #33808660
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел предложить
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
begin atomic
  for xxx as 
    select c from  table( f('a') ) as T
  do
    insert into t2 ( p1 ) values (c);
  end for;
end
, но это тоже не работает.

Похоже, получается - либо делать так, "как принято" в DB2 (рекурсивные запросы либо C/Java), либо вообще никак.
...
Рейтинг: 0 / 0
SQL20267N в функции и далее
    #33808866
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaХотел предложить ... но это тоже не работает.
Так должно работать (только завернутое в with), но не работает, потому что это баг.
Некто из ибм так сказал и посоветовал открыть инциндент, если надо.
Более того, он сказал, что и в viper не работает пока.
...
Рейтинг: 0 / 0
SQL20267N в функции и далее
    #33808920
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там забавно
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
begin atomic
  for xxx as
    select c from  table( f('a') ) as T
  do
    insert into t2 ( p1 ) values (c);
  end for;
end
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL20267N  The function "VVM.F" (specific "SQL060622164835800") modifies SQL
data and is invoked in an illegal context. Reason code =  "2".  LINE NUMBER= 3 .
SQLSTATE=429BL

begin atomic
  for xxx as
    with temp as (select c from  table( f('a') ) as T)
    select * from temp
  do
    insert into t2 ( p1 ) values (c);
  end for;
end
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0901N  The SQL statement failed because of a non-severe system error.
Subsequent SQL statements can be processed.  (Reason "column number out of
range".)  SQLSTATE= 58004 

begin atomic
  declare x varchar( 10 );
  for xxx as
    select c from  table( f('a') ) as T
  do
    set x = c;
  end for;
end
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL20267N  The function "VVM.F" (specific "SQL060622164835800") modifies SQL
data and is invoked in an illegal context. Reason code =  "2".  LINE NUMBER= 4 .
SQLSTATE=429BL

Но если из описания функции убрать "modifies sql data", то всё работает.

Но есть в этой баге и какая-то "неземная мудрость" - быть может, ValPlot начнёт писать "как положено".
...
Рейтинг: 0 / 0
SQL20267N в функции и далее
    #33809220
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValPot
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
with a as (select p1 from  table( func(param) ) as T ),
b as 
(
select p1
from new table(insert into t2 ( p1 ) select p1 from a)
)
select count( 1 ) from b;
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / SQL20267N в функции и далее
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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