N'κόσμε'
adalah (kurang lebih) setara dengan CAST('κόσμε' AS NVARCHAR2(..))
Dengan N'κόσμε'
anda mengatakan "perlakukan string sebagai NVARCHAR". Jika Anda menulis 'κόσμε'
maka string diperlakukan sebagai VARCHAR
. Namun, NLS_CHARACTERSET
. Anda adalah WE8ISO8859P15
yang tidak mendukung karakter Yunani. Jadi Anda mendapatkan ?
sebagai pengganti.
Anda tidak memberi tahu kami NLS_NCHARACTERSET
Anda pengaturan, kemungkinan besar ini mendukung Unicode.
btw, Anda tidak perlu select ... from dual
, cukup tulis seperti
l_ec := ASCIISTR('κόσμε');
di PL/SQL.
Apa lokal Anda? NLS_LANG
nilai, yaitu di sisi klien Anda? Kemungkinan besar itu tidak cocok dengan pengkodean karakter SQL*Plus Anda. Lihat jawaban ini untuk detail lebih lanjut:OdbcConnection mengembalikan Karakter Mandarin sebagai "?"