Oracle中NVARCHAR2与VARCHAR2的相互转换

时间:2023-01-30 22:42:01

将NVARCHAR2转换为VARCHAR2:

  1. declare
  2. v_username   varchar2(12)   ;
  3. v_nm_login   nvarchar2(12);
  4. begin
  5. select   utl_raw.cast_to_varchar2(utl_raw.cast_to_raw(v_nm_login))
  6. into   v_username
  7. from   dual;
  8. end;

将VARCHAR2转换为NVARCHAR2:

  1. declare
  2. v_username   varchar2(12)   :=   'pavan408';
  3. v_nm_login   nvarchar2(12);
  4. begin
  5. select   utl_raw.cast_to_nvarchar2(utl_raw.cast_to_raw(v_username))
  6. into   v_nm_login
  7. from   dual;
  8. end;

补充,以上转换如果含有汉字有可能转换失败,都成了“??”,可以用Translate函数来转换 
例如

    1. Translate('你好' USING NCHAR_CS)--此处的“你好”是varchar类型
    2. Translate(yourWords USING CHAR_CS)--此处的yourWords是nvarchar类型