ďťż
 
MS SQL unicode i funkcja replace() ďťż
 
MS SQL unicode i funkcja replace()
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

MS SQL unicode i funkcja replace()



Leszek Wesołowski - 12-01-2007 00:29
MS SQL unicode i funkcja replace()
  Witam

Proszę o pomoc.

Mam w bazie dane. Są one codziennie w nocy aktualizowane z innego systemu.

Dane tekstowe są zapisywane w formacie unicode.
Dodatkowo wymagają konwersji z jednej standardu kodowania na inny.

Wszystko by było dobrze gdyby nie ... :)

funkcja replace() zamienia mi wszystko a nawet więcej niż powinna

Powiedzcie mi dlaczego tak się dzieje że po wykonaniu takiej procedurki

DECLARE @nstring nchar(20)
SET @nstring = N'ul. Spó³dzielcza 35'
print replace(@nstring,N'³',N'ł')

mam w wyniku coś takiego:
ul. Spółdzielcza ł5

Zamienia mi dodatkowo '3' na 'ł'

Pozdrawiam
Leszek

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





Marcin A. Guzowski - 12-01-2007 00:29

  Leszek Wesołowski napisał(a):
> DECLARE @nstring nchar(20)
> SET @nstring = N'ul. Spó³dzielcza 35'
> print replace(@nstring,N'³',N'ł')
>
> mam w wyniku coś takiego:
> ul. Spółdzielcza ł5

E tam. W to na pewno nie uwierzę. Zmienna @nstring nie zmieści się w
typie nchar(20). Nie ma więc szans, że ten kod wyświetli w ogóle numer
ulicy - string zostanie ucięty gdzieś na końcówce nazwy.

Natomiast przy typie danych o odpowiedniej długości u mnie wszystko
działa jak trzeba.

Jeżeli nadal chcesz oskarżać REPLACE o niewłaściwe działanie to podaj:
- dokładną wersję SQL Servera
- COLLATION bazy w kontekście której jest issue i COLLATION servera
- dokłady T-SQL, który powoduje błędne działanie
-* inne info, które uznasz za stosowne

--
Pozdrawiam,
Marcin Guzowski
http://guzowski.info




Leszek - 13-01-2007 00:01

 

> Leszek Wesołowski napisał(a):
> > DECLARE @nstring nchar(20)
> > SET @nstring = N'ul. Spó³dzielcza 35'
> > print replace(@nstring,N'³',N'ł')
> >
> > mam w wyniku coś takiego:
> > ul. Spółdzielcza ł5
>
>
> E tam. W to na pewno nie uwierzę. Zmienna @nstring nie zmieści się w
> typie nchar(20). Nie ma więc szans, że ten kod wyświetli w ogóle numer
> ulicy - string zostanie ucięty gdzieś na końcówce nazwy.
>
> Natomiast przy typie danych o odpowiedniej długości u mnie wszystko
> działa jak trzeba.
>
> Jeżeli nadal chcesz oskarżać REPLACE o niewłaściwe działanie to podaj:
> - dokładną wersję SQL Servera
> - COLLATION bazy w kontekście której jest issue i COLLATION servera
> - dokłady T-SQL, który powoduje błędne działanie
> -* inne info, które uznasz za stosowne
>
>
> --
> Pozdrawiam,
> Marcin Guzowski
> http://guzowski.info

No cóż ale to naprawde działa a co najlepsze to jest przykład z oficjalnej
dokumentacji MS SQL 2000. Opis funkcji UNICODE() i działa ;)))

A co do działania REPLACE do dziękuje pomogło wstawienie COLLATION

Pozdrawiam
Leszek Wesołowski

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= =?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?= =?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?= [oracle] - Oracle SQL Developer - co to jest SID? =?ISO-8859-2?Q?[Oracle]_Wywo=B3anie_skryptu_sh_z_PL/SQL-a=3F=3F?= [oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • czterowers.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com