Получение 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
Другие вопросы по тегам