CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

查询提示超过了最大目录缓冲区 1023 字节(1024 字节输入)。

楼主flashasp(flashasp)2005-01-11 11:03:25 在 MS-SQL Server / 基础类 提问

sql_text="select   *   from   table......."---这个语句超长^_^   ,此语句可以查出正确结果  
  再把这个sql_text放进下面的语句中就报错:    
  EXEC   master..xp_cmdshell   'bcp   "select   *   from   table......."   queryout   c:\miClinTemp.txt   -c   -Sgeonado   -Usa   -P'  
  ----------------------------------------------------------------------------  
  查询提示超过了最大目录缓冲区   1023   字节(1024   字节输入)。  
  :   No   error  
  NULL  
  ----------------------------------------------------------------------------如何解决^_^  
  想将上面的SQL语句做成一个试图,但是提示;查询分析器不支持CAS构造,郁闷:( 问题点数:100、回复次数:10Top

1 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-01-11 11:25:46 得分 0

EXEC   master..xp_cmdshell   N'bcp   ...Top

2 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-01-11 11:27:07 得分 0

xp_cmdshell后边跟的命令字符串最大支持varchar(255)   或   nvarchar(4000)。Top

3 楼pbsql(风云)回复于 2005-01-11 11:27:31 得分 0

最大为1024   字节Top

4 楼flashasp(flashasp)回复于 2005-01-11 11:27:52 得分 0

EXEC   master..xp_cmdshell   N'bcp   ...   错误依然  
  Top

5 楼flashasp(flashasp)回复于 2005-01-11 11:31:14 得分 0

select   *   from   table......难道我要在这个语句上面下功夫缩短其长度吗^_^  
  我试着将每个字段名的长度缩短看看^_^  
  select   *   from   table.......还没超过最大长度可以正常运新,那么下面的字符也不是很多^_^  
  EXEC   master..xp_cmdshell   'bcp   ""   queryout   c:\miClinTemp.txt   -c   -Sgeonado   -Usa   -P'  
  很可能就是多拉几个字符呢^_^  
   
  Top

6 楼flashasp(flashasp)回复于 2005-01-11 11:37:56 得分 0

^_^,果真可以,我只去掉拉"select   *   from   table......"中的一些多余的空格就可以拉  
   
  大家帮我看看还能不能简化  
  select    
                case    
                      when   (jsdh   is   null   and   czrq   is   null)   then   cast(class   as   char(1))  
                      else   ltrim(rtrim(cast(jsdh   as   char(10))))    
                end   as   jsdh,  
                case    
                      when   (jsdh   is   null   and   czrq   is   null)   then   cast(code   as   char(20))  
                      else   ltrim(rtrim(cast(czrq   as   char(10))))  
                end   as   czrq,  
                 
                case    
                      when   (jsdh   is   null   and   czrq   is   null)   then   cast(unit   as   char(20))  
                      else   cast(unit   as   char(1))  
                end   as   unti,cast(kong   as   char(1))   as   kong,  
                 
             
                case    
                      when   (jsdh   is   null   and   czrq   is   null)   then   cast(num   as   char(20))  
                      else   cast(num   as   char(1))  
                end   as   num,  
                case    
                      when   (jsdh   is   null   and   czrq   is   null)   then   cast(price   as   char(20))  
                      else   cast(price   as   char(20))  
                end   as   price,  
                 
                    case    
                      when   (jsdh   is   null   and   czrq   is   null)   then   cast(doctor   as   char(20))  
                      else   cast(doctor   as   char(1))  
                end   as   doctor,  
                 
              case    
                      when   (jsdh   is   null   and   czrq   is   null)   then   cast(keshi   as   char(40))  
                      else   cast(keshi   as   char(1))  
                end   as   keshi,  
               
            case    
                      when   (jsdh   is   null   and   czrq   is   null)   then   cast(fsrq   as   char(10))  
                      else   cast(fsrq   as   char(1))  
                end   as   fsrq  
  from    
                his..miClinTempTop

7 楼pbsql(风云)回复于 2005-01-11 11:39:13 得分 0

EXEC   master..xp_cmdshell   'bcp   "SQL语句"   queryout   c:\miClinTemp.txt   -c   -Sgeonado   -Usa   -P'  
   
  把SQL语句写短些试一下Top

8 楼pbsql(风云)回复于 2005-01-11 11:47:32 得分 20

如果语句不能简短,那就去掉一些空格和不必要的字符使之少于1024字符  
   
  rtrim似乎无必要,别名前的as也无必要Top

9 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-01-11 11:52:48 得分 80

select    
                ltrim(rtrim(cast(jsdh   as   char(10))))   ,  
                ltrim(rtrim(cast(czrq   as   char(10)))),  
                cast(unit   as   char(1)),  
                cast(kong   as   char(1)),  
                cast(num   as   char(1))   ,  
                cast(price   as   char(20)),  
                cast(doctor   as   char(1)),  
                cast(keshi   as   char(1)),  
                cast(fsrq   as   char(1))  
  from    
                his..miClinTemp  
  where    
                jsdh   is   not   null   or   czrq   is   not   null  
  union   all  
  select    
                cast(class   as   char(1))     as   jsdh,  
                cast(code   as   char(20))     as   czrq,  
                cast(unit   as   char(20))     as   unti,  
                cast(kong   as   char(1))       as   kong,  
                cast(num   as   char(20))       as   num,  
                cast(price   as   char(20))   as   price,  
                cast(doctor   as   char(20))   as   doctor,  
                cast(keshi   as   char(40))   as   keshi,  
                cast(fsrq   as   char(10))     as   fsrq  
  from    
                his..miClinTemp  
  where    
                jsdh   is   null   and   czrq   is   nullTop

10 楼flashasp(flashasp)回复于 2005-01-11 12:17:20 得分 0

^_^,舒服Top

相关问题

  • 请问在串行通信中,如果我要查询当前输入缓冲区接收到的字节个数应该用哪个API函数,我翻遍了winbase.h,就差没去监控API调用了(因为msco
  • (急)怎样清空输入缓冲区???
  • 请问:已经得到一个输入流(InputStream)如何读出缓冲区中的内容,字节形式,返回byte[]
  • 怎样取得socket缓冲区中数据的字节数?
  • 急!如何清除键盘输入缓冲区
  • MScomm的输入缓冲区怎么设置?
  • 关于输入缓冲区的问题,请帮忙解答
  • 请问,怎么清空输入缓冲区
  • 对标准输入缓冲区的操作,请教!
  • 请问如何清空键盘输入缓冲区????????

关键词

  • 语句
  • 查询
  • xp
  • null
  • jsdh
  • cast
  • cmdshell
  • bcp
  • 超过
  • 长度

得分解答快速导航

  • 帖主:flashasp
  • pbsql
  • libin_ftsafe

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo