2010-11-08 7 views
1

Y a-t-il quelque chose à propos des instructions CASE qui interrompt automatiquement une requête qui utilise MINUS? Je compare une extraction en direct d'un ensemble de données à un cache précédent, et même si les instructions CASE dans le pull direct retournent des résultats VARCHAR2 purs, j'obtiens une incompatibilité de type entre eux et les valeurs statiques dans la table de cache, sont également stockés sous VARCHAR2.Instructions SQL CASE et MOINS

Les seules autres possibilités auxquelles je peux penser sont encore moins probables: des concaténations (||) ou des littéraux entre guillemets simples, qui sont tous deux présents dans les résultats CASE, peuvent-ils être encrassés?

+5

Un exemple de votre requête incluant votre instruction CASE devrait nous aider à vous aider. –

Répondre

1

Dans votre instruction SELECT, avez-vous d'autres champs à l'exception de ce CAS? MOINS essaie de comparer les lignes entières, peut-être que certaines des autres valeurs ne correspondent pas.

Avez-vous essayé de rogner le boîtier (TRIM(CASE foo WHEN..) pour voir si vous avez glissé quelque chose?

Toutes les branches renvoient-elles VARCHAR2? Parfois, même si une branche renvoie un nombre ou une date, cela pourrait gâcher les types.

+0

Eh bien, l'une des branches de chaque instruction est une URL bricolée comme suit: – Alex

+0

'chaîne de texte littérale' || CHAR_VALUE || 'chaîne de texte littérale' || NUM_VALUE || 'chaîne de texte littérale' (existe-t-il un moyen d'insérer des sauts de ligne dans un commentaire) Mais même en tapant un TO_CHAR sur NUM_VALUE, ou sur l'ensemble, ou les deux, ne résout pas le problème. – Alex

+0

Eh bien, curieusement, j'ai essayé de mettre à nouveau TO_CHAR à la fois sur NUM_VALUE et sur toute la branche, et cette fois-ci cela a fonctionné. Et oui, je vais devoir trouver un moyen de donner des exemples significatifs de ce que je fais en ligne sans poster quoi que ce soit qui puisse être lié aux éléments propriétaires de ce sur quoi je travaille (à savoir dire, tout cela). – Alex