Nedávno jeden zákazník sdílel řešení, které vyřešilo problém, ke kterému došlo při použití našeho ovladače SQL Server ODBC pro připojení Oracle k SQL Server. Chyba, kterou zákazník dostával, byla:
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
a toto bylo vyřešeno:
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
V Oracle vrátí „SELECT FDS_CLASS_NAME FROM HS_FDS_CLASS“ řetězec, který identifikuje vaši verzi DG4ODBC. Např.:
ODBC11.2.0.2.0_0008
Spuštění tohoto dotazu:
SELECT * FROM HS_CLASS_CAPS WHERE FDS_CLASS_NAME ='ODBC11.2.0.2.0_0008';
vrací řadu "schopností", které ukazují, jak je DG4ODBC nakonfigurován, aby se choval.
Ve výše uvedeném příkladu byl sloupec zákazníka NVARCHAR
typ. Pod vedením podpory Oracle zákazník změní chování DG4ODBC s ohledem na tento typ dat.
Zákazník našel příslušné pole v HS_CLASS_CAPS
:
564 TO_NCHAR(op1) 0
a změnil jej pomocí balíčku Oracle DBMS_HS.ALTER_CLASS_CAPS
.
Všimněte si, že to, co dělají různé funkce DG4ODBC, není, jak se zdá, nikde veřejně zdokumentováno. Tento blog proto nemůže poskytnout konkrétní návod, jak je používat k řešení konkrétního problému. Místo toho je blog poskytován proto, abyste věděli, že máte k dispozici jiný nástroj, pokud úprava parametrů v konfiguračním souboru DG4ODBC, init
Viz také
- Odstranění nebo aktualizace příkazu pomocí TG4MSQL 10.2 nebo DG4ODBC 11.2 odkazující na pole Nvarchar v místě, kde klauzule uvádí chybu ORA-2070
- Re:Problém s Oracle Database Gateway pro ODBC a Unicode