Niedawno klient udostępnił obejście, które rozwiązało problem, który wystąpił podczas korzystania z naszego sterownika ODBC SQL Server do łączenia Oracle z SQL Server. Błąd, który otrzymywał klient:
DELETE FROM mytable@MYLINKEDDATABASE WHERE MyCol = 'MyValue'; 17:01:01 [DELETE - 0 row(s), 0.000 secs] [Error Code: 2070, SQL State: 42000] ORA-02070: database MYLINKEDDATABASE does not support some function in this context
i zostało to rozwiązane przez:
SQL> select fds_class_name from HS_FDS_CLASS; ODBC11.2.0.2.0_0008 exec dbms_hs.replace_class_caps('ODBC11.2.0.2.0_0008', 564,'ODBC11.2.0.2.0_0008',564, 8191,NULL,1); PL/SQL procedure successfully completed. SQL> commit; Commit complete
W Oracle „SELECT FDS_CLASS_NAME FROM HS_FDS_CLASS” zwróci ciąg, który identyfikuje twoją wersję DG4ODBC. Np.:
ODBC11.2.0.2.0_0008
Uruchamianie tego zapytania:
SELECT * FROM HS_CLASS_CAPS WHERE FDS_CLASS_NAME ='ODBC11.2.0.2.0_0008';
zwraca szereg "możliwości", które pokazują, jak DG4ODBC jest skonfigurowany do zachowania.
W pokazanym wcześniej przykładzie kolumna, w której klient był NVARCHAR
rodzaj. Pod kierunkiem wsparcia Oracle klient zmienia zachowanie DG4ODBC w odniesieniu do tego typu danych.
Klient znalazł odpowiednie pole w HS_CLASS_CAPS
:
564 TO_NCHAR(op1) 0
i zmieniłem to za pomocą pakietu Oracle, DBMS_HS.ALTER_CLASS_CAPS
.
Zauważ, że różne funkcje DG4ODBC nie są, jak się wydaje, udokumentowane nigdzie publicznie. Dlatego ten blog nie może dostarczyć konkretnych wskazówek, jak ich użyć do rozwiązania konkretnego problemu. Zamiast tego udostępniono blog, aby uświadomić Ci, że masz do dyspozycji inne narzędzie, jeśli edytowanie parametrów w pliku konfiguracyjnym DG4ODBC, init
Zobacz też
- Usuń lub zaktualizuj oświadczenie za pomocą TG4MSQL 10.2 lub DG4ODBC 11.2 Odwołując się do pola Nvarchar, w którym klauzula powoduje błąd ORA-2070
- Odp.:Problem z Oracle Database Gateway dla ODBC i Unicode