2010-08-24 24 views

Répondre

1

Les deux colonnes name sont stockées dans des jeux de caractères différents. Cela peut être dû à leurs définitions de type, ou peut-être parce que les deux bases de données utilisent des jeux de caractères différents.

Vous pourrez peut-être contourner ce problème en convertissant explicitement le champ de la base de données distante en un jeu de caractères local. Essayez ceci:

SELECT NAME FROM localdb MINUS SELECT TO_CHAR(NAME) from [email protected] 
+0

Merci. J'ai creusé un peu, hier, et j'ai pu utiliser cette requête. Il existe également des paramètres NLS qui peuvent avoir le même effet. Dans ce cas, cependant, la question est la colonne NAME sur le remotedb est un NVARCHAR tandis que celui sur la base de données locale est un VARCHAR2. – abhi

0

Il semble que les types de colonne NAME dans ces 2 tables sont différents.

Assurez-vous que la colonne NAME de la table remotedb est exactement de même type que en tant que NAME dans la table localdb. Il est obligatoire lorsque vous utilisez un opérateur MINUS.

+0

Je ne peux pas changer le TYPE dans les deux tables. Donc, une conversion explicite doit se produire. – abhi