powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как сделать Update?
7 сообщений из 7, страница 1 из 1
Как сделать Update?
    #32147604
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочется сделать update вида:

update t_operation op
set op.comm_rate=bcc.comm_rate
from t_bvd_commission_calc bcc
where op.id=bcc.id

т.е. заполнить значение колонки в одной таблице значениями из другой. На приведенный выще запрос, почти корректный для MS SQL Server, Oracle ругается.
Вариант вида

update t_operation op
set op.comm_rate=(select bcc.comm_rate from t_bvd_commission_calc bcc
where op.id=bcc.id)
мне не нравится, так как на самом деле нужно обновить большее количество колонок.

Как бы это сделать попроще и с наименьшей нагрузкой на сервер?
...
Рейтинг: 0 / 0
Как сделать Update?
    #32147628
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если большее количество колонок, то зря не нравится. Пиши col1, col2, ... coln = (SELECT col1, col2, ..., coln ...)
...
Рейтинг: 0 / 0
Как сделать Update?
    #32147665
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как это сделать? Вот попробовал:

update t_operation op
set op.comm_rate, op.comm_rate_summa, op.comm_currency=
(select bcc.comm_rate, bcc.comm_rate_summa, bcc.comm_currency from t_bvd_commission_calc bcc
where op.id=bcc.id)

Oracle на этот запрос ругается.
...
Рейтинг: 0 / 0
Как сделать Update?
    #32147701
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой Update заработал:

update t_operation op
set (op.comm_rate, op.comm_rate_summa, op.comm_currency)=
(select bcc.comm_rate, bcc.comm_rate_summa, bcc.comm_currency from t_bvd_commission_calc bcc
where op.id=bcc.id)
...
Рейтинг: 0 / 0
Как сделать Update?
    #32147712
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это тебе кажется.


select bcc.comm_rate, bcc.comm_rate_summa, bcc.comm_currency from t_bvd_commission_calc bcc
where op.id=bcc.id

может возвратить пустую строку

еще where нужно поставить для update statement-а
...
Рейтинг: 0 / 0
Как сделать Update?
    #32147746
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. нужно
update t_operation op
set (op.comm_rate, op.comm_rate_summa, op.comm_currency)=
(select bcc.comm_rate, bcc.comm_rate_summa, bcc.comm_currency from t_bvd_commission_calc bcc
where op.id=bcc.id)
where exists(select * from t_bvd_commission_calc bcc
where op.id=bcc.id) ?

А как-нибудь короче нельзя?
...
Рейтинг: 0 / 0
Как сделать Update?
    #32147752
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
where
op.id in ( select ... )
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как сделать Update?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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