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