Oracle
 sql >> Base de données >  >> RDS >> Oracle

Réglage fin d'Oracle DG40DBC

Récemment, un client a partagé une solution de contournement qui a résolu un problème survenu lors de l'utilisation de notre pilote ODBC SQL Server pour connecter Oracle à SQL Server. L'erreur que le client recevait était :

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

et cela a été résolu par :

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

Dans Oracle, "SELECT FDS_CLASS_NAME FROM HS_FDS_CLASS" renverra une chaîne qui identifie votre version DG4ODBC. Ex. :

ODBC11.2.0.2.0_0008

Exécution de cette requête :

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

renvoie un certain nombre de "capacités" qui montrent comment DG4ODBC est configuré pour se comporter.

Dans l'exemple présenté précédemment, la colonne du client était un NVARCHAR taper. Sous la direction du support Oracle, le client modifie le comportement de DG4ODBC vis-à-vis de ce type de données.

Le client a trouvé le champ pertinent dans HS_CLASS_CAPS :

564 TO_NCHAR(op1) 0

et l'a changé avec le package Oracle, DBMS_HS.ALTER_CLASS_CAPS .

Notez que ce que font les différentes fonctionnalités de DG4ODBC n'est, semble-t-il, documenté nulle part publiquement. Ce blog ne peut donc pas fournir de conseils spécifiques sur la façon de les utiliser pour résoudre un problème spécifique. Au lieu de cela, le blog est fourni pour vous faire savoir que vous avez un autre outil à votre disposition, si la modification des paramètres dans le fichier de configuration DG4ODBC, init.ora ne résout aucun problème que vous rencontrez avec votre connectivité DG4ODBC.

Voir aussi

  • Supprimer ou mettre à jour l'instruction à l'aide de TG4MSQL 10.2 ou DG4ODBC 11.2 faisant référence au champ Nvarchar dans la clause Where qui génère une erreur ORA-2070
  • Re :Problème avec Oracle Database Gateway pour ODBC et Unicode