Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle PLSQL equivalente de ASCIISTR(N'str')


N'κόσμε' é (mais ou menos) equivalente a CAST('κόσμε' AS NVARCHAR2(..))

Com N'κόσμε' você diz "trate a string como NVARCHAR". Se você escrever apenas 'κόσμε' então a string é tratada como VARCHAR . No entanto, seu NLS_CHARACTERSET é WE8ISO8859P15 que não suporta caracteres gregos. Assim você obtém ? como marcador de posição.

Você não nos informou seu NLS_NCHARACTERSET configuração, provavelmente isso suporta Unicode.

btw, você não precisa select ... from dual , basta escrever como
l_ec := ASCIISTR('κόσμε');

em PL/SQL.

Qual é o seu local NLS_LANG valor, ou seja, ao lado do seu cliente? Provavelmente não corresponde à codificação de caracteres do seu SQL*Plus. Veja esta resposta para mais detalhes:OdbcConnection retornando caracteres chineses como "?"