Oracle PL/SQL chaîne de comparer problème

1).Bonjour, j'ai de la suite Oracle PL/SQL codes qui peuvent être rouillé de vous les gars perspective:

 DECLARE
 str1  varchar2(4000);
 str2  varchar2(4000);
 BEGIN
   str1:='';
   str2:='sdd';
   IF(str1<>str2) THEN
    dbms_output.put_line('The two strings is not equal');
   END IF;
 END;
 /

C'est très évident que les deux chaînes ch1 et ch2 sont pas égaux, mais pourquoi "Les deux chaînes ne sont pas égales" n'a pas été imprimé? N'Oracle ont une autre méthode pour comparer deux chaînes de caractères?

  • Gardez à l'esprit, Oracle, une chaîne vide est équivalent à NULL qui peut ne pas fonctionner comme prévu dans une inégalité de comparaison de la déclaration
  • pourriez-vous me donner quelques conseils sur la façon de résoudre ce problème?
  • Ce sont deux questions distinctes. Vous devriez leur demander en tant que tels, c'est comment ça fonctionne. Cela dit, votre deuxième question est une vieille histoire qui a déjà été répondu plusieurs fois. Faites une recherche avant de demander: stackoverflow.com/questions/tagged/oracle+string-aggregation
  • Merci, Mais en Fait je veux le plus est de savoir comment résoudre le premier problème.
  • double possible de Pourquoi Oracle 9i traiter une chaîne vide comme NULL?
  • sauf que cette question n'est pas de se demander pourquoi une chaîne vide est nulle, mais pourquoi '' <> 'something' n'est pas vrai. Il est seulement liée à cette question, que la réponse à cette question, parce que Oracle considère les cordes à vide que nul pourrait conduire à poser la question, pourquoi?

InformationsquelleAutor C.c | 2011-09-02