2016-06-29 2 views
0

File.txt에서 대량 가져 오기를 만들었습니다. 열 중 하나가, 가져 오기, 다음 텍스트 후 :여러 번 바꾸기 문제

30 x 1,5 mm, O-Ring, EPDM, 70░▒5░ Shore A, schwarz, Tol. nach ISO 3601 

그러나 수 있습니다

,ISNULL(REPLACE(REPLACE(REPLACE([ARTTXT], '░', '°'), '▒', '±'), '▀', 'ß'), '') AS [ARTTXT] 
:

30 x 1,5 mm, O-Ring, EPDM, 70°±5° Shore A, schwarz, Tol. nach ISO 3601 

나는 다음과 같이 여러 대체 사용하려는

하지만 다음과 같이 나타납니다.

30 x 1,5 mm, O-Ring, EPDM, 70°°5° Shore A, schwarz, Tol. nach ISO 3601 

그리고 그녀의 행 :

Spritzschutz-Ring SRP, Typ SS, DN 25, PP, rot, PN 10-40 f³r Flanschverb. aus 2 Vorschweißfl. EN 1092-1 Fom B, 

그래서 당신은 °ß 작업을 볼 수 있지만, ±하지 않습니다.

왜? SQL Server 2008 R2를 사용하고 있습니다.

감사합니다.

Greetz Vegeta_77

업데이트 : @Damien_The_Unbeliever 사용 NVARCHAR이 훨씬 낫다. 그것은 작동합니다! 그러나 마침내 나는 문제가 있습니다

... mittelgr³n -> 그래서 내 대체 을 mittelgrün해야이다 :

REPLACE([ARTTXT], N'³', N'ü') 

그래서 mittelgrün 작품. 그러나 또한 대체하고 있습니다 : 2-381 -> 2-ü81

왜? 대체는 없습니다 ... N'3 ','U '

+0

THXjarlh. 그러나 그것이되어야합니다 : Vorschweißfl. - 그리고 "또 다른 행 :"왜냐하면 ß 작품! –

+1

아마도 데이터 정렬 문제와 같을 것입니다. –

+0

이제 ± # 대신 #를 시도했지만 70 ° 5 ° –

답변

0

는 지금은 작업 솔루션을 가지고있다.

0

이 문제를 해결해야합니다

,ISNULL(REPLACE(REPLACE(REPLACE([ARTTXT], nchar(9617), '°'), nchar(9618), '±'), nchar(9600), 'ß'), '') AS [ARTTXT] 

문제가, 언급 된 문자된다 - 아스키로 변환하는 경우 - 모두가 줄을 같은 결과. 그러나 대신 유니 코드를 사용하면 올바른 문자가됩니다. 여기에 예 : 내 SQL-표에 1 : 나는 Codepage = 'ACP'을 사용하면 TXT 문자열 1을 제공

WITH 
(
    CODEPAGE = 'ACP', 
    FIELDTERMINATOR = '|', 
    ROWTERMINATOR = '\n' 
) 

:

SELECT ISNULL(REPLACE(REPLACE(REPLACE(N'30 x 1,5 mm, O-Ring, EPDM, 70░▒5░ Shore A, schwarz, Tol. nach ISO 3601', nchar(9617), '°'), nchar(9618), '±'), nchar(9600), 'ß'), '') AS [ARTTXT] 
관련 문제