2010-03-04 20 views
4

En essayant de trouver des enregistrements dans une colonne VARCHAR qui peut contenir un NUL (0x00), et je ne trouve pas un moyen de localiser le caractère NUL.Caractères NULL dans Firebird VARCHAR

Toutes les idées sont les bienvenues.

-Israél

+0

select * from élèves où PhoneNumber est non nul –

+0

http://cse-mjmcl.cse.bris.ac.uk/blog/2007/02/14/ 1171465494443.html –

+0

Merci pour le commentaire, j'ai fini par faire une approche d'essai et d'erreur pour traquer la colonne VARCHAR avec le caractère NULL. Il ne semble pas possible de rechercher un caractère binaire spécifique avec SQL sur Firebird. –

Répondre

2

Firebird est livré avec une bibliothèque de fonctions externes (bibliothèque UDF) qui a une fonction de ASCII_CHAR. Vous devez déclarer dans votre base de données comme ceci:

DECLARE EXTERNAL FUNCTION ascii_char 
INTEGER 
RETURNS CSTRING(1) FREE_IT 
ENTRY_POINT 'IB_UDF_ascii_char' MODULE_NAME 'ib_udf'; */ 

Ensuite, vous pouvez essayer d'interroger:

select * from yourtable where column like '%' || ASCII_CHAR(0) || '%' 

ou quelque chose de similaire ...

je dois admettre que je ne l'ai pas essayé , mais vous pourriez et nous faire connaître les résultats :)

+0

Cela a fonctionné à merveille. Merci, je ne savais pas que la fonction UDF était disponible. –