Di recente un cliente ha condiviso una soluzione alternativa che ha risolto un problema che si verificava durante l'utilizzo del nostro driver ODBC di SQL Server per connettere Oracle a SQL Server. L'errore che stava ricevendo il 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
e questo è stato risolto da:
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, "SELECT FDS_CLASS_NAME FROM HS_FDS_CLASS" restituirà una stringa che identifica la versione di DG4ODBC. Es.:
ODBC11.2.0.2.0_0008
Esecuzione di questa query:
SELECT * FROM HS_CLASS_CAPS WHERE FDS_CLASS_NAME ='ODBC11.2.0.2.0_0008';
restituisce una serie di "capacità" che mostrano come è configurato il comportamento di DG4ODBC.
Nell'esempio mostrato in precedenza, la colonna del cliente era un NVARCHAR
genere. Sotto la direzione del supporto Oracle, il cliente cambia il comportamento di DG4ODBC rispetto a questo tipo di dati.
Il cliente ha trovato il campo pertinente in HS_CLASS_CAPS
:
564 TO_NCHAR(op1) 0
e l'ho modificato con il pacchetto Oracle, DBMS_HS.ALTER_CLASS_CAPS
.
Si noti che ciò che fanno le varie capacità DG4ODBC non è, a quanto pare, documentato in alcun modo pubblico. Questo blog non può quindi fornire indicazioni specifiche su come utilizzarli per risolvere un problema specifico. Invece, il blog viene fornito per informarti che hai un altro strumento a tua disposizione, se la modifica dei parametri nel file di configurazione DG4ODBC, init
Vedi anche
- Elimina o aggiorna la dichiarazione utilizzando TG4MSQL 10.2 o DG4ODBC 11.2 facendo riferimento al campo Nvarchar in cui la clausola fornisce un errore ORA-2070
- Re:Problema con Oracle Database Gateway per ODBC e Unicode