Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / оракловский rowid =db2 ? / 10 сообщений из 10, страница 1 из 1
25.04.2007, 16:49
    #34487176
marianna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оракловский rowid =db2 ?
возможно ли такое написать для 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
25.04.2007, 17:15
    #34487310
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оракловский rowid =db2 ?
Я правильно понимаю, что надо:
в таблице А из всех записей с
Код: plaintext
ENTITY = '001' AND DEAL_NO = '12345'
проставить
Код: plaintext
STEP_ID = 'la-la'
только у 1-й записи, у которой максимальное значение timestamp, причем у любой из них, если таких записей с макс. timestamp несколько?
...
Рейтинг: 0 / 0
25.04.2007, 17:52
    #34487457
marianna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оракловский rowid =db2 ?
да. абсолютно правильно
...
Рейтинг: 0 / 0
25.04.2007, 17:59
    #34487481
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оракловский rowid =db2 ?
Код: 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
25.04.2007, 19:05
    #34487711
marianna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оракловский rowid =db2 ?
СПАСИБО!
...
Рейтинг: 0 / 0
25.04.2007, 19:19
    #34487764
marianna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оракловский rowid =db2 ?
Марк, спасибо, но мне кажется что для db7 ето не работает.
...
Рейтинг: 0 / 0
26.04.2007, 06:23
    #34488329
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оракловский rowid =db2 ?
Код: 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
26.04.2007, 08:30
    #34488429
тлгдшлщм
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оракловский rowid =db2 ?
marianna - 7-ка уже года как 2 не поддерживается, а вы еще на ней сидите
...
Рейтинг: 0 / 0
26.04.2007, 09:37
    #34488555
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оракловский rowid =db2 ?
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
26.04.2007, 11:19
    #34488969
marianna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оракловский rowid =db2 ?
Марк, спасибо, впечетлена!
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / оракловский rowid =db2 ? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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