sql >> Database teknologi >  >> RDS >> Oracle

Finjustering af Oracle DG40DBC

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.ora ikke de problemer, du har med din DG4ODBC-forbindelse.

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

  1. SQL Indfyld tabel med tilfældige data

  2. String_agg til SQL Server før 2017

  3. Introduktion til C

  4. Løsning til ORA-00997:ulovlig brug af LONG datatype