Avatar billede jytte Nybegynder
10. september 2003 - 17:16 Der er 6 kommentarer og
1 løsning

hvad skal linieskift erstattes med?

jeg har lavet et databasedump med create og insertsætninger -- een sql-sætning pr. linie.

Derefter kan jeg oprette en kopi af databasen ved at udføre hver linie for sig.

Men når et tekstfelt indeholder et linieskift går det galt -- så passer det nemlig ikke længere at der er een sqlsætning pr. linie.

så hvordan indsætter jeg et linieskift uden at skrive det?
Nedenstående virker ikke

insert into testtabel values('hej med' + 0x0D + ' dig')
Avatar billede webnord Novice
10. september 2003 - 17:32 #1
Prøv med

insert into testtabel values('hej med' + vbcrlf + ' dig')
Avatar billede jytte Nybegynder
10. september 2003 - 17:52 #2
virker ikke

The name 'vbcrlf' is not permitted in this context.
Only constants, expressions, or variables allowed here.
Column names are not permitted.
Avatar billede Slettet bruger
10. september 2003 - 19:16 #3
Wt skud:
insert into testtabel values('hej med' + chr(10) + chr(13) + ' dig')
Avatar billede arne_v Ekspert
10. september 2003 - 19:26 #4
Afhængig af om du vil have LFCR eller kun LF ind:

insert into testtabel values('hej med' + char(10) + char(13) + ' dig')

insert into testtabel values('hej med' + char(10) + ' dig')
Avatar billede arne_v Ekspert
10. september 2003 - 19:26 #5
(CHR hedder CHAR i MS SQLServer)
Avatar billede arne_v Ekspert
10. september 2003 - 19:32 #6
Men jeg har et andet forslag.

UPDATE tabel SET felt=REPLACE(felt,CHAR(10)+CHAR(13),'<LF><CR>');
eksport
import
UPDATE tabel SET felt=REPLACE(felt,'<LF><CR>',CHAR(10)+CHAR(13));

så undgår du helt problemet !
Avatar billede jytte Nybegynder
10. september 2003 - 20:42 #7
>bertie jeg troede også først det hed chr, men det kunne jeg ikke få til at virke.

Jeg fik så følgende til at virke
INSERT INTO testtabel VALUES('hej med ' + CAST(0x0D AS char(1) + CAST(0x0A AS char(1)) + ' dig')

Men arnes forslag er bedre og det betyder at jeg når jeg laver mit databasedump blot skal lave følgende replace

Replace(aktueltfeltnavn,vbcrlf,"' + char(13) + char(10) + '")

for at få det ønskede resultat

arne v> cr plejer vistnok at komme før lf    og dit sidste forslag er ikke det jeg ønsker da det ikke vil give en nøjagtig kopi af min database
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester