SQL Server nvarchar(max)
平时接触都是float类型、number类型转化成nvarchar类型。用cast,convert就可以。
今天把一个excel导入到SQL Server 2012中,处理完后复制到excel里,格式都乱了;
于是想把tab键、换行符等替换掉的,结果看到一字段ntext类型,于是用replace试下,结果不行;
官方上说的很明确了,如果string_expression的类型不是varchar(max)或nvarchar(max),则REPLACE将截断返回值,截断长度为8,000字节。
若要返回大于8,000字节的值,则必须将string_expression显示转换为大值数据类型。
先说明我的那字段真大于8000,而且我真的使用convert(nvarchar(8000),column_name)转换的,结果失败;好吧,我承认我错了,我该仔细看报错说明的,我把8000改为4000就OK了。
但是,但是,我要说一点,convert(nvarchar(4000),column_name)这个绝对有截断的。
重点是下面:
convert(nvarchar(max),column_name)
这样竟然没报错(开始使用convert(nvarchar(8000),column_name)报错的,后来我找了个max),我很吃惊!我不知道有没有截断哦,好像这么多内容,excel的单元格不显示全的。
max 指示最大存储大小是 2^31-1 个字节
再次标注下:
char(9) 水平制表符
char(10)换行键
char(13)回车键
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步