N'κόσμε'
es (más o menos) equivalente a CAST('κόσμε' AS NVARCHAR2(..))
Con N'κόσμε'
dices "tratar la cadena como NVARCHAR". Si escribes solo 'κόσμε'
entonces la cadena se trata como VARCHAR
. Sin embargo, su NLS_CHARACTERSET
es WE8ISO8859P15
que no admite caracteres griegos. Entonces obtienes ?
como marcador de posición.
No nos dijiste tu NLS_NCHARACTERSET
configuración, lo más probable es que sea compatible con Unicode.
por cierto, no tienes que select ... from dual
, simplemente escribe como
l_ec := ASCIISTR('κόσμε');
en PL/SQL.
¿Cuál es tu local NLS_LANG
valor, es decir, en su lado del cliente? Lo más probable es que no coincida con la codificación de caracteres de su SQL*Plus. Consulte esta respuesta para obtener más detalles:OdbcConnection que devuelve caracteres chinos como "?"