Oracle 11 XE i 12 - kodowanie znaków

0

Co trzeba zrobić, żeby do bazy Oracle 11 lub 12 można było odpalić skrypt z pliku (formatowanego do UTF8 bez BOM) poprzez sqlplus?

Stwierdziłem, że:

  • plik musi być odpowiednio kodowany ?
  • baza musi być odpowiednio skonfigurowana (AL32UTF8 coś w tym stylu) ? - jeszcze tego nie ogarnąłem...
  • połączenie sqlplusa musi być alter session i odpowiednio kodowane?

Czy zależy to od środowiska systemu gdzie to jest odpalane?

Cokolwiek nie robię zamiast niemieckich znaków mam w bazie krzaczki przy insert into...

help, jakieś pomysły?

0

Jak w ogóle można zmienić kodowanie już istniejącej bazy? domyślnie to chyba UTF16?

Znalazłem coś takiego:
https://docs.oracle.com/cd/B10501_01/server.920/a96529/ch10.htm#1009904

0

Nie bawiłem się tym wprawdzie bo nigdy nie miałem problemów z konwersją znaków ale za kodowanie odpowiedzialny jest NLS_LANG, poniżej powinieneś znaleźć odpowiedzi na pytania z wytłumaczeniem oraz relewantne kwerendy.

http://www.oracle.com/technetwork/products/globalization/nls-lang-099431.html

0

kodowanie istniejącej bazy możesz zmienić o ile zmieniasz z "mniejszego" kodowania na "większe" - czyli możesz np. z latin2 na utf8 ale z utf8 na latin2 już nie. To odpowiedź na drugie pytanie.
Co do pierwszego to możesz ustawić kodowanie sesji poleceniem ALTER SESSION SET NLS_LANGUAGE=jezyk tu masz spis wszystkich dostępnych http://www.oracle.com/technetwork/database/database-technologies/globalization/nls-lang-099431.html#_Toc110410556

BTW ściągnij sobie SQLTools - darmowy prosty manager do oracla - będzie Ci dużo łatwiej

0

Dzieki bardzo.niestety musi to byc sql plus. Bo tak nasz klient to odpala a my nie mamy dostepu do jego bazy. Wiec wyciagamy krysztalowa kule i wymyslamy co moze pojsc zle.

Aplikacja zapisuje poprawnie w bazie, bezposrednie inserty z sql plusa czy sql developera, tez ok.

Ale gdy odpalam skrypt z pliku przez sql plusa, jest lipa. Tymi skryptami klient tworzy i czysci baze. Dzieki.

0

ja mam wszystkie skrypty w kodowaniu natywnym dla systemu. Zwróć uwagę na znak końca linii pomiędzy windowsem a linuxem. Nigdy nie miałem problemu z samymi skryptami o ile nie występowały tam jakieś "dziwne" znaczki

1 użytkowników online, w tym zalogowanych: 0, gości: 1