自定义了个函数,但是保存是出错,如下,
create or replace function Isdate(mydate varchar2) return integer is
tempdate Date
begin    tempdate:= to_date(mydate,'yyyy-mm-dd hh24:mi:ss');
           return 1;
  exception
           when others then
           return 0;         
end Isdate;FUNCTION SYS.ISDATE 编译错误错误:PLS-00103: 出现符号 "BEGIN"在需要下列之一时:
        := . ( @ % ; not null
          range with default character
       符号 ";" 被替换为 "BEGIN" 后继续。
行:3
文本:begin请问这个错在哪儿了吗?

解决方案 »

  1.   

    create or replace function Isdate(mydate varchar2) return integer is
      tempdate  Date;  -- 这里少个;号.
      begin
      tempdate := to_date(mydate, 'yyyy-mm-dd hh24:mi:ss');
      return    1;
      exception when others then return 0;
    end Isdate;
      

  2.   

    问题找到,少了分号tempdate Date 
    在sqlplus中怎么看已有的function
      

  3.   

    SQL> select object_name from user_objects where object_type = 'FUNCTION';
      

  4.   

    PL/SQL里左边的菜单栏(一个TREE VIEW)中有一个文件夹叫FUNCTION,在那里面也可以点着看~
      

  5.   

    select dbms_metadata.get_ddl('FUNCTION','ISDATE') from dual;
      

  6.   


    SQL> select dbms_metadata.get_ddl('FUNCTION','ISDATE') from dual;
     
    DBMS_METADATA.GET_DDL('FUNCTIO
    --------------------------------------------------------------------------------
     
      CREATE OR REPLACE FUNCTION "SYS"."ISDATE" (mydate varchar2) return integer i这个貌似不全啊,看到了个开头
      

  7.   

    select text from user_source where name = upper('Isdate')
      

  8.   


    set long 4000;
    select dbms_metadata.get_ddl('FUNCTION','ISDATE') from dual;
      

  9.   

    少了分号。tempdate Date 
    =》
    tempdate Date;