您的位置:程序门 -> db2 -> 数据库开发



create function trim时产生的奇怪问题,请高手帮忙。


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


create function trim时产生的奇怪问题,请高手帮忙。[无满意答案结贴]
发表于:2007-12-21 17:19:20 楼主
由于db2中没有trim函数,只有ltrim和rtrim;为了不修改我原有的程序,我用create   function写了一个函数,如下:
create   function   schema.trim
  (str   varchar(4000)
  )  
    returns   varchar(4000)
    specific   schema.trim
    language   sql
    deterministic
    contains   sql
    no   external   action
    return   ltrim(rtrim(str));
函数注册通过,但是从结果看,有问题如下:
似乎调用trim函数的列都变成4000字符长度了。
即,如果有sql语句:select   trim(name)   as   name   from   company;
则返回的name字段值会变的很长。
本来怀疑是返回类型的问题,可是我也查看过ltrim的函数,它的返回类型也是varchar(4000),
为什么调用它的时候就没有问题??请高手们帮我看看是什么问题。谢谢。
发表于:2007-12-21 17:25:421楼 得分:0
补充:我在db2的指示符下输入select   trim(name)   as   name   from   company时,发现每条记录要占很多行,所以才有怀疑的说法,可是用程序或者quest   central没有这个问题。
发表于:2007-12-21 21:48:002楼 得分:0
写得没有问题,可能就是这样设计的。
发表于:2007-12-24 10:17:153楼 得分:0
还有个问题,我用delphi写程序读数据时,发现用length(query.fieldbyname(fieldname).asstring)这样读出来,发现字段长度没问题,不过如果直接用db类型的控件,就会发现用了trim的字段变成memo类型了,这就表示字符串变得很长了。
发表于:2007-12-25 17:48:194楼 得分:0
怎么一直没人回阿。


快速检索

最新资讯
热门点击