有一个字段为VARCHAR(4000),我在存储之前都会判断长度,然后截取,
现在发现用存储过程程序会出现假死机的状态,就是始终在提交保存状态不动,
后来实在没有办法用回到了直接INSERT 的老办法,问题的出现就是有\由于字段值太长直接引起的!!
大家有没有这样的经历,可以分享一下!!讨论一下!!
VARCHAR不能超过一定长度的
会存在这样的问题,你在插入之前进行判断如果用的是len,这个函数是判断位数而不是字节数,比如len("一")=len("1").实际上他们的字节数是不一样的,建议你这样修改:
1)把varchar改成nvarchar类型
或者
2)在判断的时候进行字节的判断
谢谢“少龙”!关于字节长读的计算已经有过考虑!!
请教varchar与nvarchar的区别 !!
nvarchar可以存储多国语言,字符集不一样
你看看联机文档,有详细说明
我没遇到过你的问题,如果超长的话,SQL Server存储过程接受参数时会自行了断。
我用的SQL2005
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 郁闷 归来 过程 存储 判断 问题 字节 nvarchar 直接 len |
注册
个人空间
