zoukankan      html  css  js  c++  java
  • SQL Server nvarchar(max)

    平时接触都是float类型、number类型转化成nvarchar类型。用cast,convert就可以。

    今天把一个excel导入到SQL Server 2012中,处理完后复制到excel里,格式都乱了;

    于是想把tab键、换行符等替换掉的,结果看到一字段ntext类型,于是用replace试下,结果不行;

    再次验证了官方说明上replace函数的使用的正确性LY6DR3ISJE0)6K)L)]~VIZK

    image

    官方上说的很明确了,如果string_expression的类型不是varchar(max)或nvarchar(max),则REPLACE将截断返回值,截断长度为8,000字节。

    若要返回大于8,000字节的值,则必须将string_expression显示转换为大值数据类型。

    先说明我的那字段真大于8000,而且我真的使用convert(nvarchar(8000),column_name)转换的,结果失败;好吧,我承认我错了,我该仔细看报错说明的,我把8000改为4000就OK了。

    image

    但是,但是,我要说一点,convert(nvarchar(4000),column_name)这个绝对有截断的。

    重点是下面:

    convert(nvarchar(max),column_name)

    这样竟然没报错(开始使用convert(nvarchar(8000),column_name)报错的,后来我找了个max),我很吃惊!我不知道有没有截断哦,好像这么多内容,excel的单元格不显示全的。

    max 指示最大存储大小是 2^31-1 个字节

    image

    再次标注下:

    char(9) 水平制表符
    char(10)换行键
    char(13)回车键

  • 相关阅读:
    排序算法比较及其应用
    confluence wiki 安装
    hbase优缺点
    maven nexus私服搭建
    IntelliJ Idea 2017 免费激活方法
    presto-cli通过hive查询hdfs
    monit拉起服务
    MAC nginx代理设置
    kafka-manager安装
    flume从log4j收集日志输出到kafka
  • 原文地址:https://www.cnblogs.com/cnmarkao/p/6019443.html
Copyright © 2011-2022 走看看