CREATE PACKAGE my_package
IS
    man_num NUMBER ;       --定义了两个全局变量
    woman_num NUMBER;
    CURSOR teacher_cur;       --定义了一个游标
    CREATE FUNCTION F_count_num(in_sex in TEACHERS.SEX%TYPE)
    RETURN  NUMBER;      --定义了一个函数
    CREATE PROCEDURE P_count_num
    (in_sex in TEACHERS.SEX%TYPE,out_num out NUMBER); --定义了一个过程
END my_package;错误提示:
pls-00103:出现符号“;”在下列需要之一

急啊急

解决方案 »

  1.   

    另外,create属于DDL,在过程/函数/包里,这样的字眼儿都需要使用动态SQL。
    看看PL/SQL基本语法。
      

  2.   

    动态是指什么,后面接or replace??
      

  3.   

    CREATE FUNCTION 和CREATE PROCEDURE 中的CREATE去掉
      

  4.   

    直接说吧,不要问为什么,游戏规则,just。
    CREATE PROCEDURE P_count_num 
    直接为:PROCEDURE P_count_num
    另外,包有包头和包体之分,包体定义需要和包头一样。
    至于动态,话外之音,慢慢你会接触的。 
      

  5.   

      CREATE FUNCTION也一样
    举一反三还不对,贴出整个信息。别让我猜。
    谢谢!
      

  6.   

    CREATE PACKAGE my_package
    IS
        man_num NUMBER;        --定义了两个全局变量
        woman_num NUMBER;
        CURSOR teacher_cur;       --定义了一个游标
        FUNCTION F_count_num(in_sex in TEACHERS.SEX%TYPE)
        RETURN  NUMBER;      --定义了一个函数
        PROCEDURE P_count_num
        (in_sex in TEACHERS.SEX%TYPE,out_num out NUMBER); --定义了一个过程
    END my_package;
    这是改过内容
      

  7.   

    1  你更改后的内容,我一样看见中文分号(;)
    有诗为证:    man_num NUMBER        --定义了两个全局变量 
        woman_num NUMBER 
        CURSOR teacher_cur 2  你没有提供错误信息。
      

  8.   

    正确答案:
    CREATE PACKAGE my_package 
    IS 
        man_num NUMBER;       --定义了两个全局变量 
        woman_num NUMBER; 
        CURSOR teacher_cur;      --定义了一个游标 
        FUNCTION F_count_num(in_sex in TEACHERS.SEX%TYPE) 
        RETURN  NUMBER;      --定义了一个函数 
        PROCEDURE P_count_num 
        (in_sex in TEACHERS.SEX%TYPE,out_num out NUMBER); --定义了一个过程 
    END my_package; 
      

  9.   

    CREATE PACKAGE my_package 
    IS 
        man_num NUMBER;
        woman_num NUMBER; 
        --CURSOR teacher_cur;
        TYPE teacher_cur IS REF CURSOR;--代替上面的游标声明
        FUNCTION F_count_num(in_sex in number) 
        RETURN  NUMBER;
        PROCEDURE P_count_num 
        (in_sex in number,out_num out NUMBER); 
    END my_package; 
    /