Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle PLSQL-Äquivalent von ASCIISTR(N'str')

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