N'κόσμε' är (mer eller mindre) ekvivalent med CAST('κόσμε' AS NVARCHAR2(..))
Med N'κόσμε' du säger "behandla strängen som NVARCHAR". Om du bara skriver 'κόσμε' då behandlas strängen som VARCHAR . Din NLS_CHARACTERSET är WE8ISO8859P15 som inte stöder grekiska tecken. Alltså får du ? som platshållare.
Du berättade inte för oss din NLS_NCHARACTERSET inställning, troligen stöder den Unicode.
btw, du behöver inte select ... from dual , skriv bara gilla
l_ec := ASCIISTR('κόσμε');
i PL/SQL.
Vad är din lokal NLS_LANG värde, det vill säga på din kundsida? Troligtvis matchar den inte teckenkodningen för din SQL*Plus. Se det här svaret för mer information:OdbcConnection returnerar kinesiska tecken som "?"