N'κόσμε'
ist (mehr oder weniger) äquivalent zu CAST('κόσμε' AS NVARCHAR2(..))
Mit N'κόσμε'
Sie sagen "behandeln Sie die Zeichenfolge als NVARCHAR". Wenn Sie nur 'κόσμε'
schreiben dann wird die Zeichenfolge als VARCHAR
behandelt . Jedoch Ihr NLS_CHARACTERSET
ist WE8ISO8859P15
die griechische Zeichen nicht unterstützt. So erhalten Sie ?
als Platzhalter.
Sie haben uns Ihren NLS_NCHARACTERSET
nicht mitgeteilt Einstellung, höchstwahrscheinlich unterstützt diese Unicode.
Übrigens, Sie müssen nicht select ... from dual
, schreiben Sie einfach wie
l_ec := ASCIISTR('κόσμε');
in PL/SQL.
Was ist Ihre lokale NLS_LANG
Wert, d. h. auf Ihrer Kundenseite? Höchstwahrscheinlich stimmt es nicht mit der Zeichencodierung Ihres SQL*Plus überein. Weitere Einzelheiten finden Sie in dieser Antwort:OdbcConnection gibt chinesische Zeichen zurück als "?"