存储过程报错:PLS-00201: identifier 'STR_TO_DATE' must be declared
            PLS-00201: identifier 'TIME_TO_SEC' must be declared
这是为什么?CREATE OR REPLACE FUNCTION DBF_GETTIMEINTERVALNUM (sDATETIME IN VARCHAR2,nTimespan IN NUMBER)RETURN NUMBER IS
tmpVar NUMBER;
/******************************************************************************
   NAME:       DBF_GETTIMEINTERVALNUM
   PURPOSE:       REVISIONS:
   Ver        Date        Author           Description
   ---------  ----------  ---------------  ------------------------------------
   1.0        2008-9-29    zhuguo      1. Created this function.   NOTES:   Automatically available Auto Replace Keywords:
      Object Name:     DBF_GETTIMEINTERVALNUM
      Sysdate:         2008-9-29
      Date and Time:   2008-9-29, 16:58:18, and 2008-9-29 16:58:18
      Username:         
      Table Name:       ******************************************************************************/
nTimeIntervalNum NUMBER;
dDateTime DATE;
BEGIN
   
   if(LENGTH(sDATETIME) <> 14) then
      return -1;
   end if;
   
   dDateTime := STR_TO_DATE(sDATETIME,'HH24MISS');
   
   nTimeIntervalNum := FLOOR(TIME_TO_SEC(dDateTime)/60/nTimespan);
      
   RETURN nTimeIntervalNum;
   
   EXCEPTION
 WHEN NO_DATA_FOUND 
 THEN
     ROLLBACK;
   RETURN -1;
 WHEN OTHERS 
     THEN
       ROLLBACK;
     RETURN -1;
END DBF_GETTIMEINTERVALNUM;

解决方案 »

  1.   

    STR_TO_DATE,TIME_TO_SEC,这两个变量在引用前需要定义啊?!
     
      

  2.   

    STR_TO_DATE,TIME_TO_SEC是你自编的函数吗?如不是,请说明这两句语句的意思。
      

  3.   

    你是不是要用  to_char?   如果是你自己定义的函数   要写那两个函数的声明~~
      

  4.   

    如果其它用户下有你自编的STR_TO_DATE,TIME_TO_SEC函数,请在现用户下再生成一遍,以便识别引用。
      

  5.   

    不是自编的,在《存储过程常用函数》有定义。
    TIME_TO_SEC (time ) //时间转秒数
    STR_TO_DATE (string ,format ) //字串转成时间,以format格式显示
      

  6.   

    这里是oracle版~~     我不会 mysql  帮你顶下吧~   
      

  7.   

    如果通用数据库还分ORACLE、MYSQL、SQL Server干什么?