各位:
大家好!我用如下过程返回数据集,报如下错误:
 Encountered the symbol "CREATE"
如何解决,还是我写的代码有问题,请各位帮忙,谢谢!一定给分的阿。==========================================================
CREATE OR REPLACE PACKAGE PKG_SELECT_TABLE
AS 
  TYPE T_CURSOR IS REF CURSOR; 
  PROCEDURE   P_Select   
    (   
          cur_name   OUT   T_CURSOR,
          p_numType number,
          p_Name nvarchar2  
             
    );  
end;CREATE OR REPLACE  PACKAGE BODY PKG_SELECT_TABLE
AS 
begin
PROCEDURE   P_Select   
(   
          cur_name   OUT   T_CURSOR,
          p_numType number,
          p_Name nvarchar2  
             
  )   
  IS   
  BEGIN   
    if (p_Name = '' or p_Name is null) then
          OPEN   cur_name   FOR  SELECT * from Student where  numType = p_numType  order by TID; 
    else
          OPEN   cur_name   FOR  SELECT * from Student where  numType = p_numType and Name = p_Name  order by TID;  
    end if;
  END;
END;

解决方案 »

  1.   

    CREATE OR REPLACE PACKAGE PKG_SELECT_TABLE 
    AS 
      TYPE T_CURSOR IS REF CURSOR; 
      PROCEDURE  P_Select  
        (  
              cur_name  OUT  T_CURSOR, 
              p_numType number, 
              p_Name nvarchar2  
                
        );  
    end; CREATE OR REPLACE  PACKAGE BODY PKG_SELECT_TABLE 
    AS 
    PROCEDURE  P_Select  
    (  
              cur_name  OUT  T_CURSOR, 
              p_numType number, 
              p_Name nvarchar2  
                
      )  
      IS  
      BEGIN  
        if (p_Name = '' or p_Name is null) then 
              OPEN  cur_name  FOR  SELECT * from Student where  numType = p_numType  order by TID; 
        else 
              OPEN  cur_name  FOR  SELECT * from Student where  numType = p_numType and Name = p_Name  order by TID;  
        end if; 
      END; 
    END PKG_SELECT_TABLE ;
      

  2.   

    改成1楼那样:
    去掉包体AS后面的begin最后end后要加包名称