Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle PLSQL еквивалент на ASCISTR(N'str')

N'κόσμε' е (повече или по-малко) еквивалентен на CAST('κόσμε' AS NVARCHAR2(..))

С N'κόσμε' казвате "третирайте низа като NVARCHAR". Ако напишете само 'κόσμε' тогава низът се третира като VARCHAR . Вашият NLS_CHARACTERSET обаче е WE8ISO8859P15 който не поддържа гръцки знаци. Така получавате ? като заместител.

Не ни казахте своя NLS_NCHARACTERSET настройка, най-вероятно това поддържа Unicode.

Между другото, не е нужно да select ... from dual , просто напишете като

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

в PL/SQL.

Кой е вашиятместен NLS_LANG стойност, т.е. от страна на вашия клиент? Най-вероятно не съответства на кодирането на знаците на вашия SQL*Plus. Вижте този отговор за повече подробности:OdbcConnection връща китайски йероглифи като "?"



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Актуализиране на ред с подзаявка, връщаща множество редове

  2. Получаване на грешка при използване на repeatStatement с интервал в заявката

  3. Защо PL/SQL не зачита привилегиите, предоставени от ролите?

  4. Преобразувайте новия ред в XML в Oracle Trigger

  5. Функция COMPOSE() в Oracle