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个字符

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

     

     

     

  • 相关阅读:
    react 封装antd menu组件,路由懒加载,可折叠,可配置显示和隐藏,刷新后选择正确的菜单,打开正确的submenu
    useHistory做页面跳转导航
    react-draft-wysiwyg富文本组件
    html转json json转html
    create-react-app 生成 report.html 可视化打包分析
    axios设置请求头实现post请求发送数据的格式(Form Data)
    url查询参数中的汉字如何解码
    React在body下追加全局组件并实现渲染更新
    Loadrunner-08-增强和优化脚本-检查点
    Loadrunner-06-增强和优化脚本-事务
  • 原文地址:https://www.cnblogs.com/wy123/p/5849766.html
Copyright © 2011-2022 走看看