powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите адаптировать запрос для db2 v.9
4 сообщений из 4, страница 1 из 1
Помогите адаптировать запрос для db2 v.9
    #38087864
nickols11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос писал для firebird. В DB2 не работает. ругается на select. Помогите.

MERGE
INTO table1 c
USING (SELECT * FROM table1
LEFT OUTER JOIN table2
ON (table1.id=table2.id)
WHERE
table1.kod='21') CD
ON (C.ID = CD.ID)
WHEN MATCHED THEN
UPDATE SET
c.pole = CD.pole
...
Рейтинг: 0 / 0
Помогите адаптировать запрос для db2 v.9
    #38088386
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nickols11,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
MERGE
INTO table1 c
USING (SELECT table1.id, table2.pole FROM table1
LEFT OUTER JOIN table2
ON (table1.id=table2.id)
WHERE
table1.kod='21') CD
ON (C.ID = CD.ID)
WHEN MATCHED THEN
UPDATE SET
c.pole = CD.pole 
...
Рейтинг: 0 / 0
Помогите адаптировать запрос для db2 v.9
    #38090181
nickols11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

Добрый день!
Не работает. Я так понимаю не хватает ключевого слова VALUES....
Может в USING нельзя select использовать??

DSNT408I SQLCODE = -199, ERROR: ILLEGAL USE OF KEYWORD SELECT. TOKEN VALUES
WAS EXPECTED
DSNT418I SQLSTATE = 42601 SQLSTATE RETURN CODE
DSNT415I SQLERRP = DSNHPARS SQL PROCEDURE DETECTING ERROR
DSNT416I SQLERRD = 2 0 0 -1 153 506 SQL DIAGNOSTIC INFORMATION
DSNT416I SQLERRD = X'00000002' X'00000000' X'00000000' X'FFFFFFFF'
X'00000099' X'000001FA' SQL DIAGNOSTIC INFORMATION
...
Рейтинг: 0 / 0
Помогите адаптировать запрос для db2 v.9
    #38090382
nickols11,

Судя по префиксам сообщений запрос выполняется на СУБД DB2 for z/OS.
MERGE для DB2 for z/OS (версии 9.1 и 10.1) не позволяет использовать SELECT внутри USING

DB2 Version 9.1 for z/OS > DB2 reference information > DB2 SQL > Statements > MERGE
DB2 10 for z/OS > DB2 reference information > DB2 SQL > Statements > MERGE

Максимум можно вот так:
Код: plsql
1.
2.
3.
4.
5.
MERGE INTO TEST02 AS T1 
USING ( VALUES (3,'C') ) AS T2(ID,NAME) 
ON (T1.ID = T2.ID) 
WHEN MATCHED THEN UPDATE SET NAME = T2.NAME 
WHEN NOT MATCHED THEN INSERT (ID,NAME) VALUES (T2.ID, T2.NAME)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите адаптировать запрос для db2 v.9
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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