Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle skonfiguruje domyślny NLS_LANG

Oto, co prawdopodobnie się dzieje:

  • Twój zestaw znaków klienta musi być podobny do CP1252 lub ISO-8859-15, podczas gdy w rzeczywistości twój klient naprawdę używa UTF8.
  • W tym zestawie znaków (UTF8) symbol á zajmuje dwa bajty, więc twój klient wysyła te dwa bajty, jednocześnie mówiąc Oracle, aby traktował je jako CP1252. W CP1252 dwubajtowy kod dla dwóch znaków, co powoduje, że DB interpretuje dane wejściowe jako dwa znaki, dlatego length('à') równa się 2 (a jeśli wstawisz ten ciąg, wynik wstawienia nie jest równy à )
  • Kiedy poprawnie ustawisz zestaw znaków, dane wejściowe są poprawnie traktowane przez Oracle jako pojedynczy znak, a jego długość wynosi 1 (nadal dwa bajty).

Wniosek:ustaw poprawnie zestaw znaków klienta lub otrzymasz błędy w tłumaczeniu (w ten sposób nie dostaniesz niedozwolonych znaków, ale możesz uzyskać dziwne symbole (¿ ).

Zestaw znaków bazy danych jest ustawiany w momencie tworzenia i zazwyczaj jest zmieniany poprzez eksport/utworzenie pustej bazy danych/importowanie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-28040 Nie Pasujący protokół uwierzytelniania podczas łączenia z SQL PLUS do Oracle 12c DB przy użyciu klienta sql plus w wersji 11.1

  2. Jak przekonwertować XMLTYPE w VARCHAR w ORACLE?

  3. Jak grupować kolejne wiersze w SQL według wielu kolumn?

  4. Groovy Oracle Stored Proc — nieprawidłowy indeks kolumny

  5. Tworzenie tabeli bazy danych w procedurze PL/SQL