--查询姓name的人数
create or replace function namenum
(name IN varchar2)
return number
as 
namenumber number;
begin
 select count(*) into namenumber from COMMON.AB01 where AAB013 like name||'%';
 return namenumber;
end namenum;
警告: 创建的函数带有编译错误  

解决方案 »

  1.   

    你在PL/SQL DEVELOPER 里写的吗?
    我试了下,创建应该是可以的;要不把那句改下试下
    select count(*) into namenumber from COMMON.AB01 ttt
    where ttt.AAB013 like name||'%';
      

  2.   

    我这边怎么都成功呀SQL> DESC TBL;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     ID                                        NOT NULL NUMBER
     NAME                                               VARCHAR2(20)
     RQ                                                 DATE
     SALARY                                             NUMBER
    SQL>  CREATE OR REPLACE FUNCTION NAMENUM(CNAME IN VARCHAR2)
      2    RETURN NUMBER
      3    AS
      4    NAMENUMBER NUMBER;
      5    BEGIN
      6      SELECT COUNT(*) INTO NAMENUMBER FROM TBL WHERE NAME LIKE CNAME||'%';
      7      RETURN NAMENUMBER;
      8    END NAMENUM;
      9  /Function created.你用
    SQL>Show err;
    察看错误原因
      

  3.   

    我也觉得很奇怪,很多人都创建成功了,为什么我的就抱错:
    行号= 1 列号= 29 错误文本= PLS-00103: 出现符号 "CREATE"在需要下列之一时:  ( return compress    compiled wrapped 这是我在console里看的.
      

  4.   

    你是在哪里面输入这段PL/SQL代码的呀? 如果是在SQL* Plus worksheet里面的话,请确保在这段代码之前和之后没有任何其它的代码(包括你用--或/*  */注释掉的代码),然后在执行试一下。
      

  5.   

    你看在你的第一行代码“create or replace function namenum”之前有一行注释“--查询姓name的人数”,请去掉这行注释再试一下。