Сбой чтения ODBC Oracle при левом соединении - PullRequest
0 голосов
/ 21 сентября 2018

У меня небольшая проблема, но она раздражает меня до крайности.я хочу присоединиться к таблице слева, но я получаю только ошибку, что чтение odbc не удается.Когда я закомментирую левый блок соединения, запрос работает.

Я почти уверен, что нет опечаток и я разочарован ..

Любые идеи?

select 
*
from
SYSADM.KATARTIKEL

left join SYSADM.TBLFALL
on SYSADM.KATARTIKEL.ITBROWID = SYSADM.TBLFALL.ITBROWID

where rownum <= 150;

вот этоошибка по-немецки ..

Fehler beim Lesen über ODBC
select 
*
from
SYSADM.KATARTIKEL

left join SYSADM.TBLFALL
on SYSADM.KATARTIKEL.ITBROWID = SYSADM.TBLFALL.ITBROWID

where rownum <= 150

РЕДАКТИРОВАТЬ: Решением для этого случая является создание псевдонимов:

select 
    K.*,

    T.ITBROWID as ITID
from
    SYSADM.KATARTIKEL K

left join SYSADM.TBLFALL T
on K.ITBROWID = T.ITBROWID

where 
    rownum <= 150;

РЕДАКТИРОВАТЬ: проблема заключается в выборе * вы не можете выбрать что-либо и делатьприсоединяйтесь потом!

1 Ответ

0 голосов
/ 21 сентября 2018

Одна очевидная проблема заключается в том, что у вас есть повторяющиеся имена столбцов.Я бы посоветовал вам перечислить все столбцы в явном виде, но вы можете воспользоваться этим ярлыком:

select k.*, f.col1, f.col2
from SYSADM.KATARTIKEL k left join
     SYSADM.TBLFALL f
     on k.ITBROWID = f.ITBROWID
where rownum <= 150;

Конечно, у вас могут быть другие проблемы, такие как SYSADM.TBLFALL не существует или ITBROWID не находится вобе таблицы.

Обратите внимание, что я также ввел псевдонимы таблиц.Я настоятельно советую вам использовать псевдонимы таблиц и полные имена столбцов во всех ваших запросах.

...