powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите с функцией в DB2
5 сообщений из 5, страница 1 из 1
Помогите с функцией в DB2
    #34471745
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаемся написать SQL функцию которая бы вставляла в данные в табличку и возвращала бы ид записи. Но что-то не получается. Пытаемся сделать ниже указанный простейший пример....
что мы делаем не так?

Версия DB2: v.8.1.13.193 Experss-C Win

Код:
CREATE TABLE AAA ( C1 INTEGER NOT NULL ) ;

CREATE FUNCTION INS_SMT(Sbj DECIMAL(10))
RETURNS DECIMAL(10)
LANGUAGE SQL
MODIFIES SQL DATA
DETERMINISTIC
NO EXTERNAL ACTION
BEGIN ATOMIC
INSERT INTO AAA (c1) VALUES (1);
RETURN 1;
END!

Ошибка:
DB21034E Данная команда обрабатывалась как оператор SQL, поскольку она не
является допустимой командой процессора командной строки. При обработке SQL
было получено сообщение:
SQL0628N В условии "MODIFIES SQL DATA" есть повторные или конфликтующие
ключевые слова. LINE NUMBER=10. SQLSTATE=42613

SQL0628N В условии "MODIFIES SQL DATA" есть повторные или конфликтующие ключевые слова.
...
Рейтинг: 0 / 0
Помогите с функцией в DB2
    #34471762
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В db2 скалярные функции не могут быть MODIFIES SQL DATA.
Пишите табличную.
...
Рейтинг: 0 / 0
Помогите с функцией в DB2
    #34471846
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinВ db2 скалярные функции не могут быть MODIFIES SQL DATA.
Пишите табличную.

Большое спасибо за указания (я почти на 99% был уверен что именно вы Mark ответите :) спасибо, ваши советы уже не в первый раз выручают) .... но нельзяли самый простой примерчик дать?
...
Рейтинг: 0 / 0
Помогите с функцией в DB2
    #34471916
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.
CREATE TABLE TAB_FNC_TEST 
( 
  C1 INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY 
, SBJ DECIMAL( 10 )
)@

CREATE FUNCTION TAB_FNC(SBJ DECIMAL( 10 ))
RETURNS TABLE
(
C1 INT
)
LANGUAGE SQL
MODIFIES SQL DATA
RETURN
SELECT C1
FROM NEW TABLE
(
INSERT INTO TAB_FNC_TEST (SBJ) VALUES (TAB_FNC.SBJ)
) T
@

select * from table(tab_fnc( 10 )) t@
select * from table(tab_fnc( 20 )) t@
...
Рейтинг: 0 / 0
Помогите с функцией в DB2
    #34472004
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein
Код: plaintext
1.
2.
3.
4.
5.
CREATE TABLE TAB_FNC_TEST 

поскипано...

select * from table(tab_fnc( 10 )) t@
select * from table(tab_fnc( 20 )) t@


Огромное спасибо!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите с функцией в DB2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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