N'κόσμε' svarer (mere eller mindre) til CAST('κόσμε' AS NVARCHAR2(..))
Med N'κόσμε' du siger "behandl strengen som NVARCHAR". Hvis du bare skriver 'κόσμε' derefter behandles strengen som VARCHAR . Men dit NLS_CHARACTERSET er WE8ISO8859P15 som ikke understøtter græske tegn. Således får du ? som pladsholder.
Du har ikke fortalt os dit NLS_NCHARACTERSET indstilling, understøtter denne højst sandsynligt Unicode.
BTW, du behøver ikke at select ... from dual , skriv blot like
l_ec := ASCIISTR('κόσμε');
i PL/SQL.
Hvad er dit lokale NLS_LANG værdi, altså hos din kundeside? Mest sandsynligt matcher det ikke tegnkodningen af din SQL*Plus. Se dette svar for flere detaljer:OdbcConnection returnerer kinesiske tegn som "?"