10
votes

Oracle 10G: la colonne est vide, mais n'est pas nul ou une chaîne vide

J'ai une colonne dans une table en blanc. La chose étrange est qu'elle ne semble pas être nulle ou une chaîne vide. Donc, si je fais cela: xxx

... ou: xxx

Je ne reçois rien. Pensées?


2 commentaires

Postez le tableau Créer une table - Si la colonne est charpendant, les caractères d'espace seront attribués pour le numéro désigné dans la Déclaration de Char.


Est-ce que sélectionne * à partir de la table où la trim (colonne) = '' retourne quelque chose?


5 Réponses :


16
votes

Émettez cette requête: xxx

Ça affichera le contenu exact.

lié: Oracle ne permet pas des chaînes vides; Ils sont convertis silencieusement en null .


0 commentaires

16
votes

Peut-être que la colonne ne contient que des espaces?

Avez-vous essayé xxx


0 commentaires

3
votes

's Oracle a une gêne essentiellement permanente que les chaînes vides sont traitées comme null. Cependant, êtes-vous sûr que c'est une chaîne vide? Il pourrait s'agir d'un caractère autrement invisible, tel qu'un espace ou une onglet / une ligne de ligne / linefeed / etc ... Qu'est-ce que la longueur de la chaîne indique lorsque vous faites Sélectionnez la longueur (colonne) à partir du tableau ?


0 commentaires

2
votes

Essayez ceci:

SELECT *    
  FROM TABLE   
 WHERE TRIM(column) IS NULL


0 commentaires

1
votes

Si votre colonne n'est pas varchar2 mais char (n) puis l'insertion d'une chaîne vide est rembourrée. Voir ce que Tom Kyte raconte à propos de ce


1 commentaires

Voici ce qui s'est passé ... On dirait qu'il y avait un caractère de 0 octet dans la colonne. En utilisant la fonction RAWTOHEX, j'ai trouvé cela. C'est ce que je devais faire pour couper: couper (chr (0) de la colonne)