Dokładanie kolumny ROWID z selectach

0

Cześć,
baza oraclowa wersji 12, czy ktoś się spotkał z czymś takim, że w logach bazy lądują ostrzeżenia typu:

PARSE ERROR: ospid=13600, error=918 for statement:
i tutaj select, który ma joina w sobie i dodana do niego kolumna ROWID

Próbowałem bazie "pomóc" przez po prostu dodanie jawnie kolumny ROWID ze wskazaniem, z której tabeli ma brać, bo przypuszczałem, że może problem jest z tym, że nie wie którą tabelą się zasugerować. W rewanżu dostawałem w logach to samo ostrzeżenie i dołożone z przodu do selecta jeszcze jedno ROWID.

Kończąmi się pomysły, jedyne co przychodzi mi do głowy to przepisać jakoś te selecty tak, żeby jawnie nie używać JOINów.

1

Na oraclowym supporcie, error=918 pojawia się w kontekście JDBC i bazy w wersji 12.2. Używasz przypadkiem JDBC i przypadkiem starszej wersji sterowników? Zgodnie z "Doc ID 2436261.1", Oracle zaleca aktualizację sterowników JDBC https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html

edit:
Jeśli uważasz, że to wina ROWIDów, to warto sprawdzić prefiksowanie rowid, a także nazwać atrybut, np.

select
  a.rowid a_rowid,
  b.rowid b_rowid
from table1 a
join table2 b on a.id=b.id
0

JDBC nie akurat, ale faktycznie wykorzystujemy pośrednika w postaci ODBC.
Ja miałem taki stan:

select
  a.rowid
from table1 a
join table2 b on a.id=b.id

To wtedy potem w logach było:

select
  rowid,
  a.rowid
from table1 a
join table2 b on a.id=b.id
1

Możliwe, że w tej sytuacji sterownik ODBC coś psuje. Spróbuj zaktualizować jego wersję i sprawdzić czy się poprawiło. Poza tym, zamiast wybierać a.rowid, to aliasuj atrybut i zobacz czy coś uległo zmianie (a.rowid rowid_z_tabeli_a).

1 użytkowników online, w tym zalogowanych: 0, gości: 1