powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Compound SQL (compiled) and scalar function
4 сообщений из 4, страница 1 из 1
Compound SQL (compiled) and scalar function
    #38286732
Roman OL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Подскажите, что происходит с "Compound SQL (compiled)" при использовании его в скалярной функции? Почему он ведет себя не так как в случае процедуры и блока? И где это знание можно прочесть?

пояснение - при выполнении кода #4 в таблице a не появляется новая строка.
Версия - 10.1

Код: sql
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.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
create table a (a int)

-- #1
create or replace function f ()
returns integer
modifies sql data
begin NOT ATOMIC
    
    declare #s int;
    
    /*declare continue handler for sqlexception
    begin
    
    end;*/
    
    
    insert into a values (1);
    
    set #s = 1/0;
    
    return 1;
end

-- #2
create or replace procedure p ()
modifies sql data
begin NOT ATOMIC
    
    declare #s int;
    
    insert into a values (1);
    
    set #s = 1/0;
    
end

-- #3
begin NOT ATOMIC
    
    declare #s int;
    
    insert into a values (1);
    
    set #s = 1/0;
    
end

-- #4
begin NOT ATOMIC
    declare #r int;
    set #r = f ();
end

-- #5
call p()


...
Рейтинг: 0 / 0
Compound SQL (compiled) and scalar function
    #38287197
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman OL,

Здравствуйте.

Вы из db2 clp это запускаете?
...
Рейтинг: 0 / 0
Compound SQL (compiled) and scalar function
    #38287325
Roman OL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

Ага, проясняется. в db2 clp выполняем
update command options using c off
для управления транзакцией. И повторяем упражнения

Второй момент, если можно прокомментируйте.
DB21034E - ругается непосредственно на "begin...end"? Следовательно так делать нельзя?
Я такие конструкции использовал для теста - отработал код или нет, ведь их нельзя обернуть в TABLE/VALUES. Остается оборачивать их в процедуры?

И отвечаю на ваш вопрос - "это" я запускал из jdbc клиента. Свои ошибки понял.
...
Рейтинг: 0 / 0
Compound SQL (compiled) and scalar function
    #38287900
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman OLв db2 clp выполняем
update command options using c off
для управления транзакцией. И повторяем упражненияУ db2 clp с включенным autocommit есть особенность: при получении ошибки оно делает rollback. Поэтому вы и не видите вставленную запись.

Roman OLDB21034E - ругается непосредственно на "begin...end"? Следовательно так делать нельзя?
Я такие конструкции использовал для теста - отработал код или нет, ведь их нельзя обернуть в TABLE/VALUES. Остается оборачивать их в процедуры?
f.sql
Код: plaintext
1.
2.
3.
4.
begin NOT ATOMIC
    declare #s int;
    insert into a values (1);
    set #s = 1/0;
end@
Код: plaintext
db2 -td@ -f f.sql

Roman OL"это" я запускал из jdbc клиента.Зависит от того, что этот java-клиент делает при получении ошибки, в смысле commit/rollback/ничего. И вообще, умеет ли он запускать compound statement.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Compound SQL (compiled) and scalar function
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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