Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में 4byte UTF8 वर्णों का पता कैसे लगाएं

हो सकता है कि आपने रेगेक्सपी बिल्डिंग में कुछ गलत किया हो:संक्षिप्त उदाहरण है।

-- create table: 
create table tmp_a as 
select unistr('\D841\DF0E') col from dual;
insert into tmp_a(col)
values(UNISTR('\D800\DC00'));
insert into tmp_a(col)
values(UNISTR('\D800\DC01'));
insert into tmp_a(col)
values(UNISTR('\D803\DC03'));
insert into tmp_a(col)
values(UNISTR('\041f'));
insert into tmp_a(col)
values('a');
insert into tmp_a(col)
values('b');


-- then check. There is should be 7 rows and only 4 should pass then "check"
select col, dump(col) , regexp_instr(col, '['||UNISTR('\F090\8080')||'-'||UNISTR('\F48F\BFBF')||']') as check from  tmp_a ;


-- finaly we could build next query with regexp_like as in your example 
select count(*) 
  from tmp_a 
 where regexp_like(col, '['||UNISTR('\F090\8080')||'-'||UNISTR('\F48F\BFBF')||']')

यह Oracle 11.2.0.4 और 12.2.0.1

. पर काम करता है

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में यूजर फंक्शन

  2. PhpStorm एकाधिक डेटाबेस कनेक्शन के लिए कॉलम को हल करने में असमर्थ

  3. Oracle 10g पर webapp से javax/xml/namespace/QName क्लास को लिंक करते समय लोडर बाधाओं का उल्लंघन किया गया

  4. एसक्यूएल दिनांक वस्तु के लिए जावास्क्रिप्ट दिनांक

  5. SQL में डुप्लिकेट पंक्तियों को कैसे हटाएं