N'κόσμε' é (mais ou menos) equivalente a CAST('κόσμε' AS NVARCHAR2(..)) Com
N'κόσμε' você diz "trate a string como NVARCHAR". Se você escrever apenas 'κόσμε' então a string é tratada como VARCHAR . No entanto, seu NLS_CHARACTERSET é WE8ISO8859P15 que não suporta caracteres gregos. Assim você obtém ? como marcador de posição. Você não nos informou seu
NLS_NCHARACTERSET configuração, provavelmente isso suporta Unicode. btw, você não precisa
select ... from dual , basta escrever como l_ec := ASCIISTR('κόσμε');
em PL/SQL.
Qual é o seu local
NLS_LANG valor, ou seja, ao lado do seu cliente? Provavelmente não corresponde à codificação de caracteres do seu SQL*Plus. Veja esta resposta para mais detalhes:OdbcConnection retornando caracteres chineses como "?"