2010-02-24 5 views
4

J'ai besoin de faire une requête qui met à jour le texte avec un saut de ligne. J'ai essayé d'utiliser \n mais il insère littéralement "\ n".Comment ajouter des sauts de ligne dans une requête (Informix)?

Exemple:

update table set text = "first line\nsecond line" 

je le veux montrer que le texte comme:

"first line 
second line" 

et non comme "first line\nsecond line". Lorsque je fais cela avec .NET cela fonctionne, mais pas sur une procédure stockée.

Est-ce que quelqu'un sait comment faire cela?

+0

Je ne trouve pas la commande Informix équivalent à CHR d'Oracle, de sorte que vous pouvez utiliser: 'CHR (10) CHR (13) ' –

Répondre

5

Vous recherchez peut-être la fonction 'ifx_allow_newline'. Alternativement, suite à la suggestion d'OMG Ponies, vous recherchez peut-être le paquet 'ascii' à partir de l'archive des logiciels d'IIUG. Informix a maintenant les fonctions ASCII() et CHR() intégré. Notez que si vous avez des anciennes versions d'Informix (quelque chose avant 11.50 - 11.70 pour CHR()), ces fonctions ne seront pas disponibles et vous devrez considérer le paquet à partir de l'archive IIUG.

+0

@alk: La documentation de la version 10 qui a été liée a été déplacée au cours des 7 dernières années. La version actuelle (12.10) est disponible sur: ['ifx_allow_newline'] (https://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_1570.htm). Cela aussi peut changer dans 7 ans. –

+0

Oh, eh bien, n'avait pas regardé la date. Pardonnez. Merci quand même! :-) – alk

+0

@alk: J'ai mis à jour cette réponse avec des liens vers la documentation Informix 12.10. Merci d'avoir signalé le problème. 27 plus de réponses à corriger ... –

0
SELECT 'Wibble' + CHAR(13) + CHAR(10) + 'Wobble' 

Met le retour chariot et la nouvelle ligne comme \ r \ n en C#. Vous pouvez vouloir les deux si le texte va être exporté dans un document n'importe où parce que parfois newline - \ n char (10) - apparaît comme un caractère de boîte pour une raison très triste que j'ai oublié/jamais vraiment: -)

+0

c'est cool, mais le fait est que j'ai besoin de créer la chaîne sur une procédure stockée, pas sur .net – sergiogx

+0

Cela ne fonctionne pas dans Informix; l'opérateur '+ 'n'est pas utilisé pour la concaténation de chaîne. Cela pourrait fonctionner dans certains logiciels clients. –

4

pour utiliser une «nouvelle ligne» caractère à l'intérieur d'un SP:

(...) 
EXECUTE PROCEDURE IFX_ALLOW_NEWLINE('T'); 
SELECT FIRST 1 
    REPLACE('Lets use a breakline here#and here#for example', '#', ' 
') 
FROM systables; 
(...) 
Questions connexes