起因:相同数据,供述厂家不同,使用正则匹配时,不同厂家的数据匹配不到。
描述:导致此问题的发生原因为“数据编码不一致”,如果仅凭肉眼壕无差异。此时需用Convert函数查看数据编码,会发现不同厂家的相同数据转换出来的编码是不一致的。
附转码函数使用方式:
在oracle中,convert函数是用来转字符集转换的。
语法:CONVERT( char, dest_char_set [ ,source_char_set] );
char |
要转换的值。它可以是任何的数据类型 。 |
dest_char_set |
要转换的字符集的名称。utf8,US7ASCII,ZHS16GBK |
source_char_set |
储在数据库中的字符集,可以不写,默认值是数据库的字符集。 |
oracle sql如何把us7ascii的字符串编码转换为utf8或者gb2312编码
用CONVERT(char, dest_char_set [,source_char_set] )函数
windows 可以直接修改 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1 nls_lang
值为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 或使用convert 函数Eg. convert(char,'ZHS16GBK','UTF8')
SQL code SQL> select CONVERT(datatype, 'US7ASCII' ) from BSTH_SYS_FIELD_ALIAS; CONVERT(DATATYPE,'US7ASCII') -------------------------------------------------------------------------------- gfdfghdf ?? SQL> select CONVERT(datatype, 'ZHS16GBK' ) from BSTH_SYS_FIELD_ALIAS; CONVERT(DATATYPE,'ZHS16GBK') -------------------------------------------------------------------------------- gfdfghdf 中文 ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C -- - 赵 A