select instr('abcdefgabcdefg','d') from dual;结果4可以查找第几次出现的位置,也可从后面查找出现的位置,可以设置从哪个字符开始查找,如,select instr('abcdefgabcdefg','d',1,2) from dual;
结果为11;

解决方案 »

  1.   

    谢谢mosaic(影子)兄,
    小弟我实在是才疏学浅.多谢各位看官了.又有一个新问题:
    如何知道"2004-1-7" 是星期几啊?有没有ms sql server 中datename的函数?
      

  2.   

    SQL> select to_char(to_date('2004-1-7','yyyy-mm-dd'),'day') from dual;TO_CHAR(TO_DATE('2004-1-7','YY
    ------------------------------
    星期三
      

  3.   

    小弟我真的太菜了,又向各位大虾提很菜的问题了。
    如何在存储过程中调用另外的存储过程啊?
    存储过程建立了以后,是否一定要授权啊?
    如下:
    create or replace procedure GetDiscount
    (
    szStart in out varchar2, 
    nID in number, 
    fDiscount out number
    )
    as
    wd number;
    nSecond number;
    hh number;
    mi number;
    ss number;
    nShortID number;
    nret number;
    begin
    szStart := ltrim(rtrim(szStart));
    @fDiscount := 1.0; --to_char(to_date('2004-1-7','yyyy-mm-dd'),'day');
    wd := round(to_date(szStart), 'd');
    hh := round(to_date(szStart), 'hh');
    mi := round(to_date(szStart), 'mi');
    ss := round(to_date(szStart), 'ss');
    nSecond := hh*3600+mi*60+ss; exec @GetDiscInfo(nID, wd, nShortID);
    commit;
    if(nShortID = -1) then
    nret := 1;
    return;
    end if;
    exec @GetTimeInfo(nSecond, nShortID, fDiscount);
    commit;
    nret := 0;
    return;
    end GetDiscount;
    /
    谢谢各位了!!!!
      

  4.   

    create or replace procedure GetDiscount
    (
    szStart in out varchar2, 
    nID in number, 
    fDiscount out number
    )
    as
    wd number;
    nSecond number;
    hh number;
    mi number;
    ss number;
    nShortID number;
    nret number;
    begin
    szStart := ltrim(rtrim(szStart));
    fDiscount := 1.0; --to_char(to_date('2004-1-7','yyyy-mm-dd'),'day');
    wd := to_char(to_date(szStart), 'd');
    hh := to_char(to_date(szStart), 'hh');
    mi := to_char(to_date(szStart), 'mi');
    ss := to_char(to_date(szStart), 'ss');
    nSecond := hh*3600+mi*60+ss; GetDiscInfo(nID, wd, nShortID);
    commit;
    if(nShortID = -1) then
    nret := 1;
    return;
    end if;
    GetTimeInfo(nSecond, nShortID, fDiscount);
    commit;
    nret := 0;
    return;
    end GetDiscount;
    /
      

  5.   

    谢谢beckham兄,又报
    32/2     PLS-00905: 对象 SYS.GETTIMEINFO 无效
    32/2     PL/SQL: Statement ignored
    SQL> 
    其中GetDiscInfo 和 GetTimeInfo 都是存储过程,已经生成的了.
    各位再拉兄弟一把,多谢拉!!!
      

  6.   

    nShortID  --这个什么时候赋值了?