powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 - SQL - возможен ли batch?
8 сообщений из 8, страница 1 из 1
DB2 - SQL - возможен ли batch?
    #32070889
PeterG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно ли в DB2 ver.7 в одном SQL стейтменте выполнять более одного SQL оператора?
Например, в MS SQL можно в ADO Command написать
INSERT INTO Table1 (Col1) VALUES ('1') INSERT INTO Table1 (Col1) VALUES ('2') INSERT INTO Table1 (Col1) VALUES ('3')
и выполнить это как один стейтмент. В результате будут вставлены 3 строки.
Если же эту строку попытаться выполнить в DB2, то получаем ошибку
[DB2/NT] SQL0104N An unexpected token "(0) INSERT INTO Table1 (ID) VALUES" was found following "O TABLE1 (ID) VALUES". Expected tokens may include: "<space>". SQLSTATE=42601
Возможно ли в DB2 выполнение нескольких SQL инструкций в одном стейтменте? Может быть, их нужно разделять каким-нибудь специальным сеператором (как "!" в Interbase)?
Заранее благодарен
...
Рейтинг: 0 / 0
DB2 - SQL - возможен ли batch?
    #32070906
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта штука называется COMPOUND SQL
...
Рейтинг: 0 / 0
DB2 - SQL - возможен ли batch?
    #32071160
PeterG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. В Help'e про Compound SQL сказано следующее: This statement can only be embedded in an application program.
Т.е., если я правильно понял, нельзя написать
BEGIN COMPOUND INSERT INTO Table1 (ID) VALUES (0) INTO Table1 (ID) VALUES (1) END COMPOUND
и отправить (например, через ADO Command) на сервер.
Так ли это? Или я ошибся в синтаксисе?
...
Рейтинг: 0 / 0
DB2 - SQL - возможен ли batch?
    #32071206
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах, через ADO!... естественно такая фишка не пройдет.
DB2 нет своего процедурного языка. Даже в 7 версии то, что пишется полностью на SQL на самом деле на сервере транслируется в C- программу, а затем компилируется обычным компилятором.
Разработка на DB2 имеет свою специфику.
Для вашего случая лучше написать сохраненную процедуру. Но если тебе просто нужно лишь вставлять данные то делай так:
INSERT INTO T1 (F1,F2,F3) VALUES
('v1','V2','v3'),
('v1','V2','v3'),
('v1','V2','v3'),
('v1','V2','v3'),...
и т.д...вот тебе все и вставицца
...
Рейтинг: 0 / 0
DB2 - SQL - возможен ли batch?
    #32071208
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е данные каждойя новой строки в круглых скобочках, а скобочки - через запятую)) Удачи!...
...
Рейтинг: 0 / 0
DB2 - SQL - возможен ли batch?
    #32093354
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BEGIN ATOMIC
список выражений через ';'
END

вполне себе работает через CLI (и, наверное, ODBC; чуть-чуть иной синтаксис для Embedded)

полезно, например, если INSERT'ы в разные таблицы одной пачкой.
...
Рейтинг: 0 / 0
DB2 - SQL - возможен ли batch?
    #32093355
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имелазь в виду DB2 UDB v7.2; не уверен насчет более ранних.
...
Рейтинг: 0 / 0
DB2 - SQL - возможен ли batch?
    #32093715
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое помнится было с версии 5й(?)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 - SQL - возможен ли batch?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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