Witam
Posiadam bazę Oracle z następującymi ustawieniami
NLS_CHARACTERSET EE8MSWIN1250
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_LANGUAGE AMERICAN
Stworzyłem w tej bazie na próbę tabelę z jedną kolumną typu NVARCHAR2 w której to zamierzam przechowywać cyrylicę.
Z bazą łączę się za pomocą SQL Developera.
Cały problem polega na tym, że kiedy łańcuch wrzucam do bazy za pomocą komórki w sekcji Data tej tabeli dane umieszczane są w tabeli prawidłowo. kiedy natomiast dane wrzucam za pomocą zapytania INSERT w bazie lądują znaki zapytania, bez względu na to czy owy łańcuch poprzedzę N'łańcuch' czy też nie.
Warto przy tym dodać, że zapytanie moje jak i to wygenerowane przez SQL Developera podczas modyfikacji komórki jest identyczne, co więcej, NVARCHAR2 korzysta z kodowania AL16UTF16 więc nie powinien mieć problemu z zapisem cyrylicy.
Na sam koniec podam jako ciekawostkę, że kiedy zmieniłem kodowanie NLS_CHARACTERSET na UTF8 dane wrzucane za pomocą zapytanie INSERT poprawnie lądowały w bazie, jednak na bazie produkcyjnej nie mam możliwości takiej zmiany :(, tym bardziej, że skoro SQL Developer potrafi umieścić cyrylicę poprawnie dla pierwszego przypadku, to zakładam, że istnieje możliwość poprawnego wrzucenia danych poprzez zapytanie.
Pozdrawiam