Привет, я получаю синтаксическую ошибку при выполнении приведенного ниже исторического оператора в oracle db. Не могли бы вы дать мне знать, как исправить приведенную ниже ошибку?
MERGE INTO d_prod_fld dp USING
(SELECT stg_prod_fld_id,
prod_cd_id,
country_name
FROM stg_prod_fld_delta pd
LEFT OUTER JOIN d_loc dl ON (dl.prod_cd_num = lpad(pd.prod_cd_id, 3, '0'))
WHERE pd.efft_to > trunc(sysdate+1)
AND pd.prod_cd_id IS NOT NULL
) stg
ON (dp.cd_id = stg.stg_prod_fld_id)
WHEN matched THEN
UPDATE SET dl.prod_country=stg.country_name;
- d_prod_fld - целевое измерение table,
- stg_prod_fld_delta - таблица этапов,
- d_lo c - поиск таблицы
в основном, когда я пытался выполнить вышеуказанный запрос в песочнице, в которой он выполняется хорошо, но когда я попытался запустить в реальной среде разработки, это показывает вышеупомянутую ошибку -
Ошибка запуска в строке: 1 в команде -
Отчет об ошибке - SQL Ошибка : ORA-30926: невозможно получить стабильный набор строк в исходных таблицах 30926. 00000 - «невозможно получить стабильный набор строк в исходных таблицах»
* Причина: стабильный набор строк мог не может быть получено из-за большой активности dml или недетерминированности c where.
* Действие: Удалите все недетерминированные c, где предложения и переиздайте dml.