FreeTDS | SQL Server | Invalid cursor state {24000}

FreeTDS | SQL Server | Invalid cursor state {24000}
DS
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 4 lata
  • Postów:5
0

[Baza danych Oracle]

Użytkownik, który korzysta z dblinka odwołującego się do bazy MS SQL Server zgłosił mi taki błąd:

Kopiuj
[FreeTDS][SQL Server]Invalid cursor state {24000}
ORA-02063: preceding 2 lines from DBAX
28500. 00000 - "connection from ORACLE to a non-Oracle system returned this message:"
*Cause: The cause is explained in the forwarded message.
*Action: See the non-Oracle system's documentation of the forwarded message.
  • Błąd występuje co drugie zapytanie SQL.

Orientujecie się może czy powyższy problem w jakikolwiek sposób można rozwiązać po stronie Oracle, czy może jest to związane z samym MS SQL Server?

Wersja MSSQL do której odwołuje się dblink to 2016
Konfiguracja pliku /etc/odbc.ini po stronie Oracle to m.in.: "TDS_Version = 8.0"

Jako "junior" po miesięcznym wprowadzeniu przejąłem obowiązki po seniorze, fajnie..```

edytowany 10x, ostatnio: DinapeS
UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:2206
1

Nie znam db linka ale ja bym sprawdził logi po stronie oracla - sam komunikat to trochę słabo. Sprawdził logi po stronie SQL servera - może jest coś, co ubija połączenie. Spróbował złapać zapytanie, które się wywala - może coś wdrożyli w jednej bazie a w drugiej już nie.

YA
  • Rejestracja:prawie 10 lat
  • Ostatnio:11 dni
  • Postów:2370
1

Internety mówią, żeby ustawić SET NOCOUNT ON po ustanowieniu połączenia, a przed odwołaniem do MSSQLa po DBLINKU.

edycja:
NOCOUNT ON

edytowany 1x, ostatnio: yarel
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:8 miesięcy
  • Postów:6610
1

Na 99% to problem po stronie mssqla. @yarel może mieć rację ale to jest załatanie problemu a nie naprawienie przyczyny - przyczyną jest to, że nie zamykasz poprzedniego kursora przed odczytem kolejnego. Bez kodu, w którym wołasz zapytanie na mssqlu będzie ciężko coś więcej powiedzieć


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
UglyMan
a nie może być tak, że np DBlink ich nie zamyka ?
abrakadaber
abrakadaber
może ale to też nie wina samego oracle a tego jak to po stronie oracle jest obsłużone. Może to też być wina drivera ODBC (tego konkretnego nie znam)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.