N'κόσμε' is (min of meer) gelijk aan CAST('κόσμε' AS NVARCHAR2(..))
Met N'κόσμε' je zegt "behandel de string als NVARCHAR". Als u alleen 'κόσμε' . schrijft dan wordt de string behandeld als VARCHAR . Uw NLS_CHARACTERSET is WE8ISO8859P15 die geen Griekse karakters ondersteunt. Zo krijg je ? als tijdelijke aanduiding.
Je hebt ons je NLS_NCHARACTERSET . niet verteld instelling, hoogstwaarschijnlijk ondersteunt dit Unicode.
btw, je hoeft niet te select ... from dual , schrijf gewoon zoals
l_ec := ASCIISTR('κόσμε');
in PL/SQL.
Wat is uw lokale NLS_LANG waarde, dus aan uw klantzijde? Hoogstwaarschijnlijk komt het niet overeen met de tekencodering van uw SQL*Plus. Zie dit antwoord voor meer details:OdbcConnection retourneert Chinese karakters als "?"