Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
21.11.2002, 16:24
|
|||
---|---|---|---|
|
|||
DB2 - SQL - возможен ли batch? |
|||
#18+
Возможно ли в 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)? Заранее благодарен ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.11.2002, 16:49
|
|||
---|---|---|---|
DB2 - SQL - возможен ли batch? |
|||
#18+
Эта штука называется COMPOUND SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.11.2002, 10:02
|
|||
---|---|---|---|
|
|||
DB2 - SQL - возможен ли batch? |
|||
#18+
Спасибо. В 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) на сервер. Так ли это? Или я ошибся в синтаксисе? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.11.2002, 11:08
|
|||
---|---|---|---|
DB2 - SQL - возможен ли batch? |
|||
#18+
Ах, через 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'),... и т.д...вот тебе все и вставицца ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.11.2002, 11:10
|
|||
---|---|---|---|
DB2 - SQL - возможен ли batch? |
|||
#18+
т.е данные каждойя новой строки в круглых скобочках, а скобочки - через запятую)) Удачи!... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.01.2003, 13:52
|
|||
---|---|---|---|
|
|||
DB2 - SQL - возможен ли batch? |
|||
#18+
BEGIN ATOMIC список выражений через ';' END вполне себе работает через CLI (и, наверное, ODBC; чуть-чуть иной синтаксис для Embedded) полезно, например, если INSERT'ы в разные таблицы одной пачкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.01.2003, 13:53
|
|||
---|---|---|---|
|
|||
DB2 - SQL - возможен ли batch? |
|||
#18+
Имелазь в виду DB2 UDB v7.2; не уверен насчет более ранних. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/moderation_log.php?user_name=%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 9992ms |
total: | 10112ms |
0 / 0 |