zoukankan      html  css  js  c++  java
  • 关于SSMS显示select出来的数据行的疑问

    调试存储过程时,往往可以用print将存储过程中的变量print出来,

    但是print出来的字符串有一定长度限制,刚才专门试了一下,应该是4000个字符

    如果超过4000个字符,超长的字符会被自动截断,这一点应该比较清楚。

    对于超过4000的字符串没办法print出来的时候,往往可以选择select @v_str这种方式,将后台的字符串select出来,然后粘贴出来查看

    但是今天发现不好使了,

    注意字符串是"aaaaa…………bbbbb",结尾时bbbbb

    我随意定义一个超级长的字符串,可以看出来len是87049,同时用select @str 给他select 出来

     

    但是我从查询结果select @str的结果中,将这个字符串复制出来之后,字符串的长度就被截断了,我从上面select出来的结果中复制

    新贴到一个查询窗口中,发现结尾不是上面定义时候的bbbbb,如截图,通过select len这个字段,发现是长度是43677

     

    因为今天遇到了类似的问题,调试存储过程的时候,对于存储过程中处理的字符串,因为print会被截断,那么就select出来,

    然后复制select出来的结果到一个新窗口中,发现字符串结尾跟处理字符串的逻辑对不上,

    比如我对字符串的处理是以分号结尾,实际上select出来然后粘贴出来查看,根本不是以分号结尾,

    而处理字符串的逻辑又很简单,断定可以不会有bug,

    那么肯定是从select中复制然后粘贴的时候出的错。

    尼玛我一开始试了n多次啊,简直不敢相信自己的眼睛。

     

    后面就干脆试一下,对于结果取len是没有问题的,长字符串select出来,然后再复制粘贴出来,中间就被截断了。

    单独地复制SSMS查询窗口中原始的字符串,也是没有问题的。

     

    这个怎么解释,还请高人指点一下。

     

    20160920补充:

    对于SSMS中查询出来的结果,retrieved有限制,最大值为65535,如下截图。

    验证起来很简单,比如:设置为20个字符串,select '一个长于20个字符的字符串',然后复制其结果,从grid中最多可以复制20个字符

    但是这个仅仅是显示问题,不会影响到其逻辑运算。

     

     

     

  • 相关阅读:
    Java8 Stream Function
    PLINQ (C#/.Net 4.5.1) vs Stream (JDK/Java 8) Performance
    罗素 尊重 《事实》
    小品 《研发的一天》
    Java8 λ表达式 stream group by max then Option then PlainObject
    这人好像一条狗啊。什么是共识?
    TOGAF TheOpenGroup引领开发厂商中立的开放技术标准和认证
    OpenMP vs. MPI
    BPMN2 online draw tools 在线作图工具
    DecisionCamp 2019, Decision Manager, AI, and the Future
  • 原文地址:https://www.cnblogs.com/wy123/p/5849766.html
Copyright © 2011-2022 走看看