Получение ORA-00918: столбец двусмысленно определен: работает этот SQL:(при добавлении таблицы)
Я получаю ошибку ORA-00918: column ambiguously defined
при запуске этого SQL:(при добавлении таблицы ra_interface_lines_all
)
SELECT DISTINCT rcta.TRX_NUMBER
, rcta.trx_date
, rcta.PRINTING_OPTION
, rcta.PRINTING_PENDING
, rcta.CREATED_FROM
, houf.NAME Business_Unit
, xep.NAME Legal_Entity
, rctta.NAME Transaction_Type
, rcta . invoice_currency_code
, aaa.gl_date
, rtb.NAME Payment_Name
, hca.account_name
FROM ra_customer_trx_all rcta
, hr_organization_units_f_tl houf
, xle_entity_profiles xep
, ra_terms_tl rtb
, RA_CUST_TRX_TYPES_ALL rctta
, hz_cust_accounts hca
, AR_ADJUSTMENTS_ALL aaa
, ra_interface_lines_all
WHERE trx_number = 3021
AND rcta.org_id = houf.organization_id
AND xep.legal_entity_id = rcta.legal_entity_id
AND rcta.SET_OF_BOOKS_ID = aaa.SET_OF_BOOKS_ID
2 ответа
Решение
Эта ошибка появляется, когда у вас есть таблица с несколькими именами с одинаковым именем столбца, и это имя столбца используется в операторе без псевдонима. Таким образом, интерпретатор не может определить, какую таблицу он должен использовать.
Чтобы исправить запрос, отметьте все столбцы без псевдонима и добавьте к ним префикс. (trx_number
например)
ra_interface_lines_all
стол имеет trx_number
столбец, который существует в другой таблице (таблицах), поэтому вы должны ссылаться на имя таблицы (или псевдоним) на столбец.
В вашем случае, если это новая таблица, вы можете изменить на:
, ra_interface_lines_all
WHERE ra_interface_lines_all.trx_number = 3021