sql >> Database teknologi >  >> RDS >> Oracle

Oracle PLSQL-ækvivalent til ASCIISTR(N'str')

N'κόσμε' svarer (mere eller mindre) til CAST('κόσμε' AS NVARCHAR2(..))

Med N'κόσμε' du siger "behandl strengen som NVARCHAR". Hvis du bare skriver 'κόσμε' derefter behandles strengen som VARCHAR . Men dit NLS_CHARACTERSET er WE8ISO8859P15 som ikke understøtter græske tegn. Således får du ? som pladsholder.

Du har ikke fortalt os dit NLS_NCHARACTERSET indstilling, understøtter denne højst sandsynligt Unicode.

BTW, du behøver ikke at select ... from dual , skriv blot like

l_ec := ASCIISTR('κόσμε');

i PL/SQL.

Hvad er dit lokale NLS_LANG værdi, altså hos din kundeside? Mest sandsynligt matcher det ikke tegnkodningen af ​​din SQL*Plus. Se dette svar for flere detaljer:OdbcConnection returnerer kinesiske tegn som "?"



  1. Planetarisk justering

  2. PHP MySQL indsæt multimensional associativ matrixbygningsforespørgsel fra matrixnøgler

  3. Hvordan konverterer jeg BLOB til VARCHAR i MySQL?

  4. Sådan undslipper du værdi søgeord i mysql, mens du bruger Select-sætning