sql >> Database >  >> RDS >> Oracle

Hoe rijen met 4-byte UTF-8-tekens in Oracle DB te selecteren?

U kunt de UNISTR-functie gebruiken; het 𠜎-teken is codepoint U+2070E , wat in UTF-16 D841DF0E is. Zoals de documentatie opmerkt:

Wat betekent dat je het kunt weergeven met:

select unistr('\D841\DF0E') from dual;

UNISTR('\D841\DF0E')
--------------------
𠜎

U kunt dan UNISTR gebruiken om uw assortiment samen te stellen:

select REGEXP_REPLACE('asd𠜎aasd', 
  '[' 
  || UNISTR('\D800\DC00') 
  || '-' 
  || UNISTR('\DBFF\DFFF') 
  || ']', '') 
from dual;

REGEXP_REPLACE('ASD𠜎AASD','['||UNISTR('\D800\DC00')||'-'||UNISTR('\DBFF\DFFF')||']','')
----------------------------------------------------------------------------------------
asdaasd

Ervan uitgaande dat u alle aanvullende tekens wilt uitsluiten; je kunt het bereik aanpassen als je een nauwere focus hebt.



  1. Salesforce SOQL gebruiken vanuit Linux

  2. Fix Msg 512 "Subquery heeft meer dan 1 waarde geretourneerd" in SQL Server

  3. Hex-waarde invoegen in MySQL

  4. Waarom orakel het gehele deel van een decimaalteken niet toont?