[mqsql] Ntext met enters -> 1 regel

Pagina: 1
Acties:

  • Chillz
  • Registratie: Augustus 2001
  • Laatst online: 16:22
In mijn MS SQL 2000 database heb ik een aantal tabellen met velden daarin van het type NTEXT(16).

In deze Ntext-velden staan adressen,
het adres staat in 1 veld, maar dus met enters erin.
bijvoorbeeld:
Ntext 16
2000 MS SQLstad
Netherlands
Nu heb ik deze velden nodig voor rapportage,
maar als Ntext kan ik ze niet inlezen, juist door de enters erin.
Dus vroeg ik me af wat ik moet doen om ze correct om te zetten naar een ander datatype veld, waarbij de ge'enter'de regels netjes aan elkaar geplakt worden...?

resultaat moet dus worden: of iets dergelijks
Ntext 16 2000 MS SQLstad Netherlands
Hoe geef ik dus in mijn Select-statement aan dat de enters uit het veld verwijderd moeten worden?

Leeg - Sinds 20180907


  • whoami
  • Registratie: December 2000
  • Nu online
Je wilt die text op een webpage zetten dmv een Response.Write oid?

Je zult de enters moeten vervangen door <br>

https://fgheysels.github.io/


  • Chillz
  • Registratie: Augustus 2001
  • Laatst online: 16:22
whoami schreef op 03 december 2003 @ 15:01:
Je wilt die text op een webpage zetten dmv een Response.Write oid?

Je zult de enters moeten vervangen door <br>
Nee, wordt geen webpage...
heb een rapport-generator, waarmee ik de adressen in een rapport wil zetten

Het rapport kan echter geen Ntext-velden aan en/of geen velden met meerdere regels

dus het veld-type moet ik op de een of andere manier veranderen, zodat ook de enters in het veld weg zijn (vervangen door spaties bv)

maar hoe...?

Leeg - Sinds 20180907


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

SQL server kent toch wel een of andere Replace functie :?
Je zou deze dus gewoon kunnen gebruiken om alle enters door spaties te vervangen.

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

NTEXT(16) is geen geldig datatype. NTEXT wel. Waar staat die 16 voor?
Voor (N)VARCHAR is inderdaad REPLACE wat je zoekt.
Voor NTEXT zul je het in de client op moeten lossen (is meer bedoeld voor grote objecten tot 2GB).

[ Voor 53% gewijzigd door Verwijderd op 03-12-2003 15:24 ]


  • Chillz
  • Registratie: Augustus 2001
  • Laatst online: 16:22
Verwijderd schreef op 03 december 2003 @ 15:20:
NTEXT(16) is geen geldig datatype. NTEXT wel. Waar staat die 16 voor?
Voor (N)VARCHAR is inderdaad REPLACE wat je zoekt.
Voor NTEXT zul je het in de client op moeten lossen (is meer bedoeld voor grote objecten tot 2GB).
NTEXT omzetten in NVARCHAR gaat opzich wel

code:
1
2
3
SELECT 
CAST([Adres1] AS NVARCHAR(295) ) 
FROM [dbo].[Adressen]

alleen heeft het nieuwe Nvarchar veld nu de enters

hierover kan ik wel een REPLACE doen, maar wat is dan de toetsencombinatie om in SQL Server een [enter] na te bootsen ?


Op de plek van de enters staat in het resultaat in de Query Analyser 2 spaties " "
dus heb ik het volgende geprobeerd:
code:
1
2
3
SELECT 
REPLACE(CAST([Adres1] AS NVARCHAR(295) ),"  "," " )
FROM [dbo].[Adressen]

Dus ik wil kijken wat het effect is als ik 2 spaties vervang door 1tje...
Maar:
MS SQL Server zegt tegen mij:
Server: Msg 207, Level 16, State 3, Line 1
Invalid column name ' '.
Server: Msg 207, Level 16, State 1, Line 1
Invalid column name ' '.
dat gaat dus niet
Iemand een ander voorstel voor mij?

[ Voor 31% gewijzigd door Chillz op 03-12-2003 15:48 ]

Leeg - Sinds 20180907


  • Chillz
  • Registratie: Augustus 2001
  • Laatst online: 16:22
Chillz schreef op 03 december 2003 @ 15:44:
code:
1
2
3
SELECT 
REPLACE(CAST([Adres1] AS NVARCHAR(295) ),"  "," " )
FROM [dbo].[Adressen]
Okay, foutje...

bovenstaande code werkt wel
(in plaats van " moest ik natuurlijk ' typen |:( |:( )

MAAR...

het lost niets op, want de dubbele spaties (= de enters) zijn hierdoor niet verdwenen

dus wie weet de toetsencombinatie voor een enter?

Leeg - Sinds 20180907


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

code:
1
\r

:?

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Chillz
  • Registratie: Augustus 2001
  • Laatst online: 16:22
heb de REPLACE geprobeerd met '\r' en \r
(ook met '\n' en \n)
maar dit levert geen resultaat op

(hooguit "Line 2: Incorrect syntax near '\'.")

Leeg - Sinds 20180907


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

probeer het eens met char(13) en char(10)

Today's subliminal thought is:


  • Chillz
  • Registratie: Augustus 2001
  • Laatst online: 16:22
Annie schreef op 03 december 2003 @ 17:03:
probeer het eens met char(13) en char(10)
Bedankt Annie _/-\o_

dat is 'm...!

voor de geïnteresseerden (/ het nageslacht/ toekomstige zoekers op dit probleem):

code:
1
2
3
SELECT 
REPLACE(CAST([Adres] AS NVARCHAR(295) ),CHAR(13)+CHAR(10),' ' )
FROM [dbo].[Adressen]

levert voor mij het gewenste resultaat
dwz: Enters uit het textveld verwijderd en alles in 1 regel

Leeg - Sinds 20180907


  • majornono
  • Registratie: Juni 2002
  • Laatst online: 04-04 23:16
Annie schreef op 03 december 2003 @ 17:03:
probeer het eens met char(13) en char(10)
of gewoon een enter in je statement zetten, werkt ook:

code:
1
2
3
4
SELECT 
REPLACE(CAST([Adres] AS NVARCHAR(295) ),'
',' ' )
FROM [dbo].[Adressen]

Problem Exists Between Chair And Keyboard


  • Chillz
  • Registratie: Augustus 2001
  • Laatst online: 16:22
majornono schreef op 03 december 2003 @ 17:23:
of gewoon een enter in je statement zetten, werkt ook:

[...code...]
Argh... Ja man...
dat werkt ook...

waar was mijn logisch denkvermogen gedurende al die tijd dat ik dit wilde weten... |:(

Leeg - Sinds 20180907


  • majornono
  • Registratie: Juni 2002
  • Laatst online: 04-04 23:16
Chillz schreef op 03 december 2003 @ 17:28:
[...]
Argh... Ja man...
dat werkt ook...
(
lol. Ik had ooit een dergelijk probleem, maar moest er toen ook wel even over nadenken hoor ;)

[ Voor 4% gewijzigd door majornono op 03-12-2003 17:34 ]

Problem Exists Between Chair And Keyboard


  • Chillz
  • Registratie: Augustus 2001
  • Laatst online: 16:22
heb 'm hersens er ook een tijdje over laten kraken...

en dan blijkt dat de oplossing ("gewoon een enter in je statement zetten") eigenlijk zo voor de hand liggend is... |:(

vaak doordat het zo logisch is denk je er niet aan dat het wat zou kunnen zijn
immers als je normaal een enter zet in een SQL statement (zonder ' ) dan heeft dit totaal geen effect...

Maar goed, ik ben eruit... :D
ben tevreden voor vandaag, denk dat ik mijn werkdag daar vandaag mee ga besluiten

Leeg - Sinds 20180907

Pagina: 1