oracle 用函數unistr將Oracle數據庫中的Unicode轉換為中文


用函數unistr將Oracle數據庫中的Unicode轉換為中文

1:保留連續的中文

select regexp_substr('Hello,大家好!greeting', '[' || unistr('\0391') || '-' || unistr('\9fa5') || ']+') from dual;

2:保留全部的中文

select regexp_replace('我愛你中國232、。,我愛你895', '[^' || unistr('\0391') || '-' || unistr('\9fa5') || ']','') from dual;

 

Oracle Unicode轉中文(解碼)

情景描述:

  將數據庫中的某個字段誤存儲的是Unicode編碼,需要將其改成中文。

測試:

--將Unicode轉中文
select unistr(REPLACE('\u6d4b\u8bd5unicode\u8f6c\u4e2d\u6587','\u','\')) from dual;

  結果是:測試unicode轉中文 

實現:

--對某字段進行解碼
update tableName set columnName = unistr(replace(columnName,'\u','\'));

封裝:

/**
 * unicode轉中文
 */
CREATE OR REPLACE FUNCTION UNICODE2CHINESE(ENCODE_TEXT IN VARCHAR2)
  RETURN VARCHAR2 IS
  V_SQL       VARCHAR2(10000); --編碼轉換sql
  TEXT_BUFFER VARCHAR2(10000); --輸出中文
BEGIN
  V_SQL := 'select unistr(REPLACE(''' || ENCODE_TEXT ||
           ''',''\u'',''\'')) from dual ';
  EXECUTE IMMEDIATE V_SQL
    INTO TEXT_BUFFER;

  RETURN TEXT_BUFFER;
END;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM