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 "?"