Oracle中NVARCHAR2与VARCHAR2的相互转换
将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:
- declare
- v_username varchar2(12) := 'pavan408';
- v_nm_login nvarchar2(12);
- begin
- select utl_raw.cast_to_nvarchar2(utl_raw.cast_to_raw(v_username))
- into v_nm_login
- from dual;
- end;
补充,以上转换如果含有汉字有可能转换失败,都成了“??”,可以用Translate函数来转换
例如
- Translate('你好' USING NCHAR_CS)--此处的“你好”是varchar类型
- Translate(yourWords USING CHAR_CS)--此处的yourWords是nvarchar类型