powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / оракловский rowid =db2 ?
10 сообщений из 10, страница 1 из 1
оракловский rowid =db2 ?
    #34487176
marianna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возможно ли такое написать для DB2.... в смысле перевести оракловский rowid..?

update A ti
set STEP_ID = 'la-la'
where
rowid =
( select rid from
( select STEP_ID, rowid rid
from A
WHERE ENTITY = '001' AND DEAL_NO = '12345'
order by timestamp desc
)
where rownum = 1 ) ;
...
Рейтинг: 0 / 0
оракловский rowid =db2 ?
    #34487310
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я правильно понимаю, что надо:
в таблице А из всех записей с
Код: plaintext
ENTITY = '001' AND DEAL_NO = '12345'
проставить
Код: plaintext
STEP_ID = 'la-la'
только у 1-й записи, у которой максимальное значение timestamp, причем у любой из них, если таких записей с макс. timestamp несколько?
...
Рейтинг: 0 / 0
оракловский rowid =db2 ?
    #34487457
marianna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да. абсолютно правильно
...
Рейтинг: 0 / 0
оракловский rowid =db2 ?
    #34487481
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
update 
(
select STEP_ID, rownumber() over (order by timestamp desc) rn
from a
WHERE ENTITY = '001' AND DEAL_NO = '12345'
) t
set STEP_ID = 'la-la'
where rn= 1 ;
...
Рейтинг: 0 / 0
оракловский rowid =db2 ?
    #34487711
marianna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СПАСИБО!
...
Рейтинг: 0 / 0
оракловский rowid =db2 ?
    #34487764
marianna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Марк, спасибо, но мне кажется что для db7 ето не работает.
...
Рейтинг: 0 / 0
оракловский rowid =db2 ?
    #34488329
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
update a
set STEP_ID = 'la-la'
where 
  (timestamp, DEAL_NO, ENTITY) = (select max(timestamp), DEAL_NO, ENTITY from a WHERE ENTITY = '001' AND DEAL_NO = '12345' group by DEAL_NO, ENTITY )  
...
Рейтинг: 0 / 0
оракловский rowid =db2 ?
    #34488429
тлгдшлщм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
marianna - 7-ка уже года как 2 не поддерживается, а вы еще на ней сидите
...
Рейтинг: 0 / 0
оракловский rowid =db2 ?
    #34488555
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mariannaМарк, спасибо, но мне кажется что для db7 ето не работает.Для v7 вам придется использовать процедурную логику с использованием конструкции
UPDATE A SET ... WHERE CURRENT OF cursor_name
В sql процедуре это могло бы выглядеть так:
---
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
begin atomic

declare sqlcode int default  0 ;
declare lSTEP_ID VARCHAR( 10 );
declare lrn int;

declare c1 cursor for
select STEP_ID, rownumber() over (order by timestamp desc) rn
from A
WHERE ENTITY = '001' AND DEAL_NO = '12345';

open c1;
fetch c1 into lSTEP_ID, lrn;
while (sqlcode!= 100 ) do
 if (lrn= 1 ) then
   update a
   set STEP_ID = 'la-la'
   where current of c1;
 end if;
 fetch c1 into lv, lrn;
end while;
close c1;

end@
---
...
Рейтинг: 0 / 0
оракловский rowid =db2 ?
    #34488969
marianna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Марк, спасибо, впечетлена!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / оракловский rowid =db2 ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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