N'κόσμε'
è (più o meno) equivalente a CAST('κόσμε' AS NVARCHAR2(..))
Con N'κόσμε'
dici "tratta la stringa come NVARCHAR". Se scrivi solo 'κόσμε'
quindi la stringa viene trattata come VARCHAR
. Tuttavia, il tuo NLS_CHARACTERSET
è WE8ISO8859P15
che non supporta i caratteri greci. Quindi ottieni ?
come segnaposto.
Non ci hai comunicato il tuo NLS_NCHARACTERSET
impostazione, molto probabilmente questo supporta Unicode.
a proposito, non devi select ... from dual
, scrivi semplicemente mi piace
l_ec := ASCIISTR('κόσμε');
in PL/SQL.
Qual è il tuo locale NLS_LANG
valore, cioè al tuo fianco cliente? Molto probabilmente non corrisponde alla codifica dei caratteri del tuo SQL*Plus. Vedi questa risposta per maggiori dettagli:OdbcConnection che restituisce caratteri cinesi come "?"