Java: Вокруг к произвольным значениям

Вы должны взглянуть на функцию Updatable Join View в Oracle - это именно ваш вариант использования.

Сначала объедините все таблицы в подзапросе (это будет эффективно выполнено с помощью хеш-объединения без медленных последовательных циклов строк).

Чем UPDATE подзапрос

Пример

create table a
(col1 number,
col2 number);

create table b
(col2 number,
col3 number);

create table c
(col3 number,
col4 number);

insert into a values(null,1);
insert into b values(1,2);
insert into c values(2,1);


update (
select a.col1, c.col4
from a 
join b on a.col2 = b.col2
join c on b.col3 = c.col3
)
set col1 = col4
;

Обратите внимание, что UJV имеет некоторые предварительные условия. В случае пропуска это приводит к

ORA-01779: невозможно изменить столбец, который сопоставляется с таблицей без сохранения ключа

blockquote>

В вашем случае вы должны вернуть таблицу [ 113] и C с уникальным индексом, чтобы гарантировать представление с сохранением ключа

create unique index c_idx on c(col3);
create unique index b_idx on b(col2);

Если это невозможно сделать на рабочих таблицах, просто используйте временную таблицу и создайте Благодаря уникальному индексу обновленное представление будет проще объединять только две таблицы.

5
задан kenoa 28 January 2009 в 10:12
поделиться

2 ответа

Вы могли сделать это:

double step = 0.0025;
double rounded = ((int)(unrounded / step + 0.5)) * step;
2
ответ дан 18 December 2019 в 07:11
поделиться
y = Math.round(x / 0.0025) * 0.0025
20
ответ дан 18 December 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: