For nylig delte en kunde en løsning, der løste et problem, der opstod ved brug af vores SQL Server ODBC-driver til at forbinde Oracle til SQL Server. Den fejl, kunden fik, var:
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
og dette blev løst af:
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
I Oracle vil "SELECT FDS_CLASS_NAME FROM HS_FDS_CLASS" returnere en streng, der identificerer din DG4ODBC-version. F.eks.:
ODBC11.2.0.2.0_0008
Kører denne forespørgsel:
SELECT * FROM HS_CLASS_CAPS WHERE FDS_CLASS_NAME ='ODBC11.2.0.2.0_0008';
returnerer en række "kapaciteter", der viser, hvordan DG4ODBC er konfigureret til at opføre sig.
I eksemplet vist tidligere var kolonnen kunden en NVARCHAR
type. Under ledelse af Oracle-support ændrer kunden, hvordan DG4ODBC opførte sig med hensyn til denne datatype.
Kunden fandt det relevante felt i HS_CLASS_CAPS
:
564 TO_NCHAR(op1) 0
og ændrede det med Oracle-pakken, DBMS_HS.ALTER_CLASS_CAPS
.
Bemærk, at det, de forskellige DG4ODBC-funktioner gør, ikke er dokumenteret nogen steder offentligt. Denne blog kan derfor ikke give specifik vejledning til, hvordan man bruger dem til at løse et specifikt problem. I stedet leveres bloggen for at gøre dig opmærksom på, at du har et andet værktøj til din rådighed. Hvis du redigerer parametre i DG4ODBC-konfigurationsfilen, løser init
Se også
- Slet eller opdater erklæring ved hjælp af TG4MSQL 10.2 eller DG4ODBC 11.2, der refererer til Nvarchar-feltet, hvor klausulen giver ORA-2070-fejl
- Angående:Problem med Oracle Database Gateway til ODBC og Unicode