Onlangs deelde een klant een tijdelijke oplossing die een probleem oploste dat zich voordeed bij het gebruik van ons SQL Server ODBC-stuurprogramma om Oracle met SQL Server te verbinden. De fout die de klant kreeg was:
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
en dit is opgelost door:
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
In Oracle zal "SELECT FDS_CLASS_NAME FROM HS_FDS_CLASS" een tekenreeks retourneren die uw DG4ODBC-versie identificeert. Bijv.:
ODBC11.2.0.2.0_0008
Deze zoekopdracht uitvoeren:
SELECT * FROM HS_CLASS_CAPS WHERE FDS_CLASS_NAME ='ODBC11.2.0.2.0_0008';
geeft een aantal "mogelijkheden" terug die laten zien hoe DG4ODBC is geconfigureerd om zich te gedragen.
In het eerder getoonde voorbeeld was de kolom de klant een NVARCHAR
type. Onder leiding van Oracle-ondersteuning verandert de klant hoe DG4ODBC zich gedroeg met betrekking tot dit gegevenstype.
De klant heeft het relevante veld gevonden in HS_CLASS_CAPS
:
564 TO_NCHAR(op1) 0
en veranderde het met het Oracle-pakket, DBMS_HS.ALTER_CLASS_CAPS
.
Merk op dat wat de verschillende DG4ODBC-mogelijkheden doen, niet overal openbaar is gedocumenteerd. Deze blog kan daarom geen specifieke richtlijnen geven over hoe ze te gebruiken om een specifiek probleem op te lossen. In plaats daarvan is de blog bedoeld om je ervan bewust te maken dat je een ander hulpmiddel tot je beschikking hebt, als het bewerken van parameters in het DG4ODBC-configuratiebestand, init
Zie ook
- Verwijder of update de verklaring met behulp van TG4MSQL 10.2 of DG4ODBC 11.2 verwijzend naar het Nvarchar-veld waarin de clausule ORA-2070-fout geeft
- Re:probleem met Oracle Database Gateway voor ODBC en Unicode