Saya tahu bagaimana rangkaian karakter database ( NLS_CHARACTERSET
dalam select * from v$nls_parameters;
) dan karakter klien (pengaturan lingkungan klien NLS_LANG
) berinteraksi.
Apa yang saya tidak dapat mengetahuinya, adalah bagaimana atau jika saya dapat menentukan, untuk sesi yang ditetapkan , apa yang dipikirkan Oracle tentang karakter klien saat ini.
Apakah ini mungkin?
Catatan: SELECT * FROM NLS_SESSION_PARAMETERS;
tidak tidak termasuk karakter set (atas 10g2).
Untuk memperjelas apa yang ingin saya capai:
- NLS_LANG diatur dalam lingkungan klien ke nilai arbitrer (misalnya
GERMAN_GERMANY.WE8MSWIN1252
) - Aplikasi basis data [*] memulai dan membuat koneksi / sesi ke basis data Oracle.
- Aplikasi basis data [*] ingin "bertanya" Oracle (bukan lingkungan OS-nya) apa yang akan diasumsikan oleh karakter klien.
[*]: Jika aplikasi db adalah sqlplus, contohnya akan terlihat sebagai berikut:
...
sqlplus /nolog
connect user/pass@example
*magic command*;
CLIENT CHARACTERSET = ...
Catatan Jack dalam jawabannya memunculkan dua poin penting:
- Dengan Oracle, siapa yang melakukan terjemahan characteret. Apakah itu kode pustaka klien atau dilakukan di sisi server?
- Karena tampaknya itu adalah klien, klien akan perlu memaparkan pengaturan ini - apa yang diasumsikan oleh klien lib / alat pengaturan ini. Apakah ada libs / alat klien Oracle (sqlplus, OCI / OCCI, Pro * C, ...) yang dapat ditanyakan tentang apa yang dianggap pengaturan ini?
sumber
NLS_LANG
" adalah benar-benar menyatakan sebaliknya, bukan? :-)Anda dapat melihat yang berikut ini :
Misalnya:
sumber