CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  Sybase

存储过程中varchar类型变量的长度问题,急!

楼主knightzhou(就像天上的浮云)2003-11-02 12:21:46 在 其他数据库开发 / Sybase 提问

CREATE   PROCEDURE   dbo.QueryRootIssues    
  @roomid   numeric   ,@begintime   datetime,   @endtime   datetime,   @parts   int,@numptime   int   =200    
  AS      
  BEGIN    
  declare   @tablename   nvarchar(50)    
  declare   @insertsql   varchar   (5000)  
  declare   @rsql   varchar   (1000)  
  declare   @beginnum   int   ,@endnum   int  
  declare   @sql   varchar(5000)  
     
  SELECT   @beginnum   =(@parts-1)*@numptime+1    
  SELECT   @endnum   =@parts*@numptime  
  SELECT   @tablename=IssueTable   FROM   Rooms   WHERE   RoomID=@roomid  
   
   
  Select   @sql='create   table   #rootissues   ('  
  Select   @sql=@sql+'   orderid                             numeric           identity                       not   null,'  
  Select   @sql=@sql+'         IssueID                             numeric                                                 null,'  
  Select   @sql=@sql+'         Topic                                 nvarchar(100)                                     null,'  
  Select   @sql=@sql+'         UserID                               numeric                                                 null,'  
  Select   @sql=@sql+'         NickName                           nvarchar(100)                                     null,'  
  Select   @sql=@sql+'         Content                             text                                                       null,'  
  Select   @sql=@sql+'         PostDate                           datetime                                               null,'  
  Select   @sql=@sql+'         RootID                               numeric                                                 null,'  
  Select   @sql=@sql+'       ParentID                           numeric                                                 null,'  
  Select   @sql=@sql+'         State                                 bit   default   1                                     not   null)'  
   
  select   @insertsql='Insert   into   #rootissues(IssueID,   Topic,   UserID,   NickName,   Content,   PostDate,   RootID,   ParentID,   State)   '  
  select   @insertsql=@insertsql+'   Select   IssueID,   Topic,   UserID,   NickName,   Content,   PostDate,   RootID,   ParentID,   State   from   '+@tablename  
  select   @insertsql=@insertsql+'       WHERE   RootID=0   AND   PostDate   >=   '''+convert(   varchar,@begintime)+'''     AND   '  
  select   @insertsql=@insertsql+'PostDate   <='''+convert(   varchar,@endtime)+'''   ORDER   BY   PostDate   DESC'  
   
  select   @rsql='SELECT   IssueID,   Topic,   UserID,   NickName,   Content,   PostDate,   RootID,   ParentID,   State     FROM     #rootissues   WHERE     orderid>=   '   +   convert(varchar,@beginnum)   +   '   AND   orderid   <=   '+convert(varchar,@endnum)   +'   ORDER   BY   PostDate   DESC   '  
  exec   @sql  
  exec   @insertsql  
  exec   @rsql  
  drop   table   #roorissues  
  END  
  存储过程如上:  
  将exec   改成print   后所生成的语句分别在外面执行是正确的  
  但执行存储过程时却却出现错误,说变量无法识别,消息太长  
  应该怎样处理?  
  问题点数:0、回复次数:4Top

1 楼rich_li(rick)回复于 2003-11-02 15:25:40 得分 0

sybase支持的varchar长度不能超过255Top

2 楼knightzhou(就像天上的浮云)回复于 2003-11-02 22:07:42 得分 0

问题解决了,原来是语法错误,  
  将  
  exec   @sql  
  exec   @insertsql  
  exec   @rsql  
  改为   exec   (@sql+'   '+@insertsql+'   '+@rsql   )  
  就可以了Top

3 楼zanpen2003(雪落无声)回复于 2003-11-02 22:23:22 得分 0

我晕!varchar的变量类型长度只能为255?你查过资料吗?我没注意。不过我觉得,怎么着也应该比char长些吧?Top

4 楼sldshyh()回复于 2003-11-03 17:38:03 得分 0

11.0的版本最大长度才是255,12版本以上支持超过2000的varchar,与逻辑页面的设置有关。Top

相关问题

  • 在PB中用存储过程存储数据,一个变量为varchar长度为2000,在调用存储过程的时候提示非法操作
  • 存储过程OUT变量?
  • ORACLE 9I 存储过程中的string类型变量最大长度为多少?有没有限制
  • 存储过程变量问题
  • 存储过程的变量的问题
  • 存储过程中的变量问题
  • 在存储过程中,如何把varchar类型的数据赋值给text类型的变量
  • 关于存储过程的问题,关于传值的问题,一个varchar的变量,放在update 表名 set a=变量 where a_id in(varchar变量)会出错!
  • 存储过程的输入变量和输出变量.
  • 请问:delphi中,参数长度可否大于255个字节??我写的存储过程,里面一个参数,长度为varchar(1000)

关键词

  • sql
  • null
  • beginnum
  • numeric
  • varchar
  • nvarchar
  • datetime
  • declare
  • parts
  • select

得分解答快速导航

  • 帖主:knightzhou

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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