现在要解决一个问题,就是我想重载oracle中已有函数substr(name,startIndex,num)这个函数因为我有很多视图中用到了substr,其中截取同一个字段 ,开始位置和截取多少位都是相同的但是因为现在name的长度发生变化。要改起来,有很多视图要改而且不知道以后name位数还会不会还变化所以我想做个活的函数自定义一个函数,以后要改就直接改自定义函数就行。大家知道怎么玩这个自定义函数吗?  其中startIndex为0,和num为15有哪位大哥帮下呀?

解决方案 »

  1.   

    什么情况?为什么不用substr()要重新自定义一个?没咋看明白你说的什么?具体点
      

  2.   

    我自己已经写出来了
    呵呵CREATE OR REPLACE FUNCTION "GetExpNo" (
      SubName in varchar2
    )
    return varchar2
    as
    begin
     RETURN case when  length(SubName)>20  then substr(SubName,1,18)
     else substr(SubName,1,15) end ;
    end;