天天看點

Oracle中NVARCHAR2與VARCHAR2的互相轉換

将NVARCHAR2轉換為VARCHAR2:   

Oracle中NVARCHAR2與VARCHAR2的互相轉換

declare     

      v_username   varchar2(12)   ;     

      v_nm_login   nvarchar2(12);     

  begin     

      select   utl_raw.cast_to_varchar2(utl_raw.cast_to_raw(v_nm_login))     

          into   v_username     

          from   dual;     

  end;   

  将VARCHAR2轉換為NVARCHAR2:   

Oracle中NVARCHAR2與VARCHAR2的互相轉換

      v_username   varchar2(12)   :=   'pavan408';     

      select   utl_raw.cast_to_nvarchar2(utl_raw.cast_to_raw(v_username))     

          into   v_nm_login     

  end;     

補充,以上轉換如果含有漢字有可能轉換失敗,都成了“??”,可以用Translate函數來轉換 

例如 

Oracle中NVARCHAR2與VARCHAR2的互相轉換

Translate('你好' USING NCHAR_CS)--此處的“你好”是varchar類型  

Translate(yourWords USING CHAR_CS)--此處的yourWords是nvarchar類型