日期:2014-05-17  浏览次数:21001 次

oracle创建存储过程 报错:pls-00103 : 出现符号 "create"

create or replace package PKG_Biz_Claim is
type type_cur is ref cursor;  -- 定义游标变量返回记录集

procedure ClaimList
  (
   Pindex in number,         --页码 从1开始
   Pfield in varchar2,    -- 查询字段
   Psql in varchar2,   --查询SQL语句
   Psize in number ,         --每页记录数
   PpageCount out number,    --总页数
   PRowCount out number,     --总记录数
   v_cur out type_cur        --分页数据游标
  );
end PKG_Biz_Claim;

Create or replace package body PKG_Biz_Claim is

procedure ClaimList
  (
   Pindex in number,         --页码 从1开始
   Pfield in varchar2,    -- 查询字段
   Psql in varchar2,   --查询SQL语句
   Psize in number ,         --每页记录数
   PpageCount out number,    --总页数
   PRowCount out number,     --总记录数
   v_cur out type_cur        --分页数据游标
  ) is

  v_sql varchar2(2000);
  v_Pstart number;
  v_Pend number;

begin

 -- 取记录总数
 v_sql:= 'select count(1) from (' || Psql || ')';
 execute immediate v_sql into PRowCount;

 -- 当前页第一条
 v_Pstart = (pindex -1)*Psize +1;
 -- 当前页最后一条
 v_Pend = Pindex  * Psize;


 v_sql := 'SELECT  ' || Pfield ||  ' from
                  (SELECT ' || Pfield  || ',rownum rn FROM( ' || Psql || ' ) WHERE rownum <= '|| to_char(v_Pend)||')WHERE rn >= ' || to_char(v_Pstart);


  OPEN v_cur FOR v_sql;
  end ClaimList;
end PKG_Biz_Claim;




包里都定义了存储过程 ,怎么还报错,指向  Create or replace package body PKG_Biz_Claim is 这一行 ? 求解答

------解决方案--------------------
1 一次运行一句

2 在多句之间加/
------解决方案--------------------
 -- 当前页第一条
 v_Pstart = (pindex -1)*Psize +1;
 -- 当前页最后一条
 v_Pend = Pindex  * Psize;

这两句里应该是用(:=)而不是(=)