Comment faire pour supprimer les retours chariot dans un champ de texte dans sqlite?
J'ai une base de données sqlite avec plus de 400 dossiers. J'ai juste constaté que certains champs de texte ont des retours chariot, et je voulais le ménage. J'ai voulu copier la structure de la table d'origine, puis faire quelque chose comme:
INSERT INTO large_table_copy
SELECT date, other_fields, replace(dirty_text_field,XXX,"")
FROM large_table
Où XXX
est ce que le code serait pour un retour chariot. Ce n'est pas \n
. Mais je ne peux pas savoir ce que c'est.
OriginalL'auteur alj | 2011-01-09
Vous devez vous connecter pour publier un commentaire.
SQLite permet de mettre des sauts de ligne à l'intérieur de littéraux de chaîne, comme ceci:
Si vous n'aimez pas cette syntaxe, vous pouvez passer à la chaîne comme un
BLOB
:X'0D'
pour\r
ouX'0A'
pour\n
(en supposant que la valeur par défaut l'encodage UTF-8).Edit: Depuis cette réponse a été écrit à l'origine, SQLite a ajouté une
CHAR
fonction. Ainsi, vous pouvez maintenant écrireCHAR(13)
pour\r
ouCHAR(10)
pour\n
, qui va travailler si votre base de données est codé en UTF-8 ou UTF-16.Pour quelqu'un qui n'est pas clair à ce sujet... vous pouvez faire quelque chose comme
SELECT replace(dirty_text_field, X'0A', '\n')...
remplacer les \n caractères avec l'équivalent "\n" 2-char chaînesc'est une bonne réponse, alors pourquoi ne pas poster de réponse au lieu de simplement un commentaire?
parce qu'il n'offre rien de fondamentalement nouveau fourni dans la réponse
OriginalL'auteur dan04
De @MarkCarter commentaire sur la question ci-dessus:
OriginalL'auteur aculich