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