sql >> Base de Datos >  >> RDS >> Oracle

Oracle PLSQL equivalente de ASCIISTR(N'str')

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