У меня есть две таблицы, которые заполнены той же структурой в 2 разных таблицах: MST3_CURR и MST4_CURR. Учетные записи заполняются в одну из двух таблиц; каждая таблица содержит учетные записи, которые находятся в другом «состоянии». Чтобы создать полный список учетных записей, таблицы должны быть полностью объединены и иметь самые последние данные для выведенной учетной записи.Oracle UNION ALL не возвращает полный набор
Существует несколько других таблиц, которые следуют точно так же, когда я использую оператор UNION ALL
без проблем. Однако, по какой-то причине с этими двумя таблицами, когда я выполнить UNION ALL
я получаю запись за счет который находится в MST3_CURR, но и другие счета в MST4_CURR и нет в конечном наборе данных. Когда я отменил заказ UNION ALL
и получил MST4_CURR, а затем MST3_CURR обратное верно.
WITH cchm_d_curr AS (
SELECT * FROM hcus_raw.cchm_d_mst3_curr
UNION ALL
SELECT * FROM hcus_raw.cchm_d_mst4_curr
)
SELECT chd_current_balance FROM cchm_d_curr
WHERE
chd_account_number IN (4700121500023998, 4700121500090430, 4700121500044101, 4700121500250492, 4700121500250013)
;
Я не в силах найти какой-либо ответ на это своеобразное поведение, которое проявляет Oracle 12c. Пожалуйста, дайте мне знать, если нет информации, которая поможет ответить на мой вопрос.
спасибо.
Эти обычные таблицы, или они, возможно, видны? Что-нибудь еще необычное в них? Выполняется ли запрос параллельно? –
"UNION ALL" не присоединился! Если вы смущены этим, как мы можем доверять тому, что все остальное, что вы говорите, на самом деле точны? – mathguy
@Alex: В таблицах нет ничего необычного. Это не виды или материализованные представления. –