问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么 SQL Server出现 将截断字符串或二进制数据的错误?

发布网友 发布时间:2022-04-11 03:42

我来回答

5个回答

懂视网 时间:2022-04-11 08:03

1. 问题描述

在同步数据时常常会发现一个错误:将截断字符串或二进制数据。

2. 问题原因

这个问题出现的原因是:要插入的数值字段的长度超出了数据库中字段的长度。比如:插入的字符串字节长度是40,数据库中字段长度设置为了varchar(36)就会报此错误。

3.问题扩展

a. 如何计算字符串长度和字节长度,既:datalength和len区别。
len:返回字符串的长度
datalength:返回字符串的字节长度

select len(convert(varchar(50),N'狮lion')) --5 N''表示Unicode格式字符串
select datalength(convert(varchar(50),N'狮lion')) --6
select len(N'狮lion') --5
select datalength(N'狮lion') --10

接下来我们分析一下为何会这样.
len返回字符串的字符长度,既:一个汉字‘狮‘+4个字母‘lion‘=5个字符。每个汉字和字母都占一个字符长度。
datalength返回字符串的字节长度。对于字节长度,需要理解:一般编码模式下,汉字和英文字母所占字节是不一样的。一般来说,汉字占2个字节,英文字符占一个字节。而对于Unicode编码,汉字和英文字母都占2个字节。
讲解一下varchar和nvarchar的区别,varchar是普通编码的字符串,nvarchar是Unicode编码的字符串,对应例子,就是对汉字‘狮‘来说,varchar格式的字符串长度为1,nvarchar格式的字符串长度为2。

len(convert(varchar(50),N'狮lion')) --返回字符长度,'狮lion',一共5个字符,varchar格式字符
len(N'狮lion') --返回字符长度,'狮lion',一共5个字符,nvarchar格式字符
datalength(convert(varchar(50),N'狮lion')) --返回字节长度,varchar格式字符'狮lion','狮'占2个字节,
      --'lion'中每个字母占用一个字节,共占用4个字节
datalength(N'狮lion') --返回字节长度,Unicode格式字符,汉字'狮'占2个字节,
    --'lion'中每个字母占用2个字节,共占用8个字节

文章引用:https://blog.csdn.net/oncealong/article/details/37573927

b. 如何查看数据库的编码格式。

--查看sqlserver数据库的编码格式
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage');
查询结果: 
936 简体中文GBK 
950 繁体中文BIG5 
437 美国/加拿大英语 
932 日文 
949 韩文 
866 俄文 
65001 unicode UFT-8

c. varchar和char和nvarchar三者的区别

  1. char是定长(固定长度),效率高于varchar;也就是当你输入的字符小于你指定的数目时,例如:char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。
  2. varchar[n]是变长且非unicode字符数据类型,n的取值在1到8000之间,该类型英文字符占一个字节,中文字符占两个字节。优点:更加合理利用空间,不会造成过多的浪费。
  3. nvarchar[n]是变长且unicode字符数据类型,n的取值在1到4000之间,该类型字符无论中英文都占取两个字节
    其中varchar和nvarchar两字段分别有字段值:你好hello
    那么varchar字段占2×2+5=9个字节的存储空间,而nvarchar字段占7×2=14个字节的存储空间。
    如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar

文章引用:https://www.cnblogs.com/flqcchblog/p/4560781.html

(SqlServe)关于字符串长度被截断的问题

标签:rop   大于   uri   c_str   str   code   prope   eal   nvarchar   

热心网友 时间:2022-04-11 05:11

你是日期不符合任何规定格式,去掉星期三就行了。
SQL SERVER能识别的格式如下:
mon dd yyyy hh:miAM(或 PM)
mm/dd/yyyy
yy.mm.dd
dd/mm/yy
dd.mm.yy
dd-mm-yy
dd mon yy
mon dd, yy
hh:mm:ss
mon dd yyyy hh:mi:ss:mmmAM(或 PM)
mm-dd-yy
yy/mm/dd
yymmdd
dd mon yyyy hh:mm:ss:mmm(24h)
hh:mi:ss:mmm(24h)
yyyy-mm-dd hh:mm:ss[.fff]
yyyy-mm-dd hh:mm:ss[.fff]
yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
dd mon yyyy hh:mi:ss:mmmAM
dd/mm/yy hh:mi:ss:mmmAM

热心网友 时间:2022-04-11 06:29

values 后面的内容改成:

values ('clk','2013-6-5 22:02:34','迟到')

热心网友 时间:2022-04-11 08:04

日期字符串格式不正确

热心网友 时间:2022-04-11 09:55

类型出错了、检查下sql语句
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我要写个小说,里面有3个男主角和一个女主角,叫什么好呢?(有5分!) 啤酒兑水浇花可以吗 手游热血传奇狗书哪里爆热血传奇手游狗书逐日噬血书什么地方能 酷狗音乐如何下载到u盘手机下载歌曲到U盘的步骤 快手拉黑了能看到自己发的作品么? 快手下面评论不显示 别听他废话是什么意思? 电脑连上chinaunicom 可是它不自动跳出登录界面 无法登陆 连接上chinaunicom之后点开网页一直弹不出登陆页面 打印机显示正在打印为什么一直没有动静呢???ps:第一次可以的,然后第二... 飞机在天上时是如何知道机场在哪? 中国陆航机场能不能起降固定翼飞机 机场大巴是固定到某一个候机厅停吗 机场的基准条件 各大机场固定玻璃隔断玻璃厚度 新郑国际机场开通的固定国际航线都有哪些 机场登机廊桥固定端。 机场起降飞机的方向,是不是基本上固定的???有尾巴的方向是降落方。 什么叫单一航向机场 什么是单一航向机场 我知道交强险的标志要一年一换,那环保标和检字是多长时间更换呀 小孩八九岁了还不听话做作业拖拉,开始判逆了,怎么办呀? 可以将上一年强制保险标志挂掉再换上新的标志吗 孩子回来就玩,写作业拖拉,讲不听,愁死了,怎么办? 世界洋流的洋流简介 女儿14岁了,做事做作业都磨叽拖拉没有好胜心又不听教导怎么办_百度问一问 小孩子作业拖拉怎么办 世界洋流中哪些是风海流 补偿流 密度流 孩子总是拖拉磨蹭父母应该怎么办? 初一开学总结怎么写? 梦见一窝猪白黑猪都有天上还下着雪 如何去掉一段视频里人物对白的声音只留背景音乐 想去除电影背景音乐中的对白 怎么把电影中的对白去掉,只保留背景音乐 用会声会影怎么去掉原视频的对白 在会声会影X3中,怎么把视频中的对白去掉,而不把背景乐去掉? 怎样用EDIUS或premiere将视频中的对白去掉!??? 请问:股票中的高台跳水,火箭发射是什么意思? qq空间电脑怎么直播 我手机通讯录里面的好友经常刷到我的抖音作品怎么办,我不想让通讯录里 ... 地理题从四川运输铁矿到上海最经济的运输方式是什么? 地理中,运输方式海运和铁路有什么区别啊?求解 谢谢 初一地理:西伯利亚地区的主要交通运输方式是?主要原因是? 地理中的河运和海运的区别在哪 高一地理---交通运输方式的连续性~~~在线等 地理表格 合理的运输方式 地理关于运输方式的题目 华为手机票根里的发票发送被设置成始终发给邮箱怎么改成微信? 微信扫一扫开发票的资料怎么变更 我的发票为什么关联不上邮箱?