sql >> Base de Datos >  >> RDS >> Oracle

Ajuste fino de Oracle DG40DBC

Recientemente, un cliente compartió una solución alternativa que resolvió un problema que ocurría al usar nuestro controlador ODBC de SQL Server para conectar Oracle a SQL Server. El error que estaba recibiendo el cliente era:

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

y esto fue resuelto por:

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

En Oracle, "SELECT FDS_CLASS_NAME FROM HS_FDS_CLASS" devolverá una cadena que identifica su versión de DG4ODBC. Por ejemplo:

ODBC11.2.0.2.0_0008

Ejecutando esta consulta:

SELECT * FROM HS_CLASS_CAPS WHERE FDS_CLASS_NAME ='ODBC11.2.0.2.0_0008';

devuelve una serie de "capacidades" que muestran cómo se configura DG4ODBC para comportarse.

En el ejemplo anterior, la columna del cliente era un NVARCHAR tipo. Bajo la dirección del soporte de Oracle, el cliente cambia el comportamiento de DG4ODBC con respecto a este tipo de datos.

El cliente encontró el campo relevante en HS_CLASS_CAPS :

564 TO_NCHAR(op1) 0

y lo cambié con el paquete de Oracle, DBMS_HS.ALTER_CLASS_CAPS .

Tenga en cuenta que lo que hacen las diversas capacidades de DG4ODBC no parece estar documentado en ningún lugar público. Por lo tanto, este blog no puede proporcionar una guía específica sobre cómo usarlos para resolver un problema específico. En cambio, el blog se proporciona para informarle que tiene otra herramienta a su disposición, si edita los parámetros en el archivo de configuración de DG4ODBC, init.ora no resuelve ningún problema que tenga con su conectividad DG4ODBC.

Ver también

  • Declaración de eliminación o actualización mediante TG4MSQL 10.2 o DG4ODBC 11.2 que hace referencia al campo Nvarchar en la cláusula Where da error ORA-2070
  • Re:Problema con Oracle Database Gateway para ODBC y Unicode