中英文字符混合处理方法

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

1,TXT文件导入SQL时

303410001401??????? 600 LANG 4-T粤IG? 0220??? 011840628900000?? BPO

303410001501??????? 600 LANDAU中ER? 0220??? 011840628900000?? BPO

303410001601??????? 600 LANG 6-T汉IG? 0220??? 011840628900000?? BPO

有此一TXT文件要导入SQL,有固定数据格式,因无明显界定符,将其导成一列,再在SQL中截取分离,存在以下问题:

数据结构给定的长度是单字节长度,但在SQL中使用substring()一个汉字只算一位,在些要求中因汉字是无固定位置,如只算一位将影响后面数据正确性

解决方法:cast(substring(cast(col001 as varbinary(1000)),39,4) as char(18)) as time_id

就是先将字段转成varbinary类型,这样汉字也算2位,截取就满足了固定格式要求了,然后再转回字符型。

2,SQL表导出至TXT中

使用cast(????? as char(20))限定

3,取长度

len()汉字只算1位

使用datalength()汉字算2位

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航