CREATE   OR   REPLACE   PACKAGE   pkg_Page
AS
      TYPE   myrctype   IS   REF CURSOR;      PROCEDURE   Page  (v_TableName varchar2(50), --表名
                         v_Fields varchar2(1000) := '*', --字段名(全部字段为*)
                         v_OrderField varchar2(1000), --排序字段(必须!支持多字段)
                         v_sqlWhere varchar2(1000),--条件语句(不用加where)
                         v_pageSize number, --每页多少条记录
                         v_pageIndex number = 1 , --指定当前为第几页
                         v_TotalPage out number,   
                         p_rc   OUT   myrctype);
END   pkg_Page; 
/
警告:创建包带有编译时错误。

解决方案 »

  1.   

    你创建完之后,执行一下show errors就能看到错误信息了。
    给你改过来了,你看一下:
    CREATE OR REPLACE PACKAGE pkg_Page
    AS
          TYPE   myrctype   IS   REF CURSOR;      PROCEDURE   Page  (v_TableName VARCHAR2, 
                             v_Fields VARCHAR2 := '*',
                             v_OrderField VARCHAR2, 
                             v_sqlWhere VARCHAR2,
                             v_pageSize number,
                             v_pageIndex number := 1 ,
                             v_TotalPage out number,
                             p_rc   OUT   myrctype);
    END   pkg_Page;
      

  2.   


     v_pageIndex number = 1 , --指定当前为第几页
    这一行你赋值错误了 应该是 v_pageIndex number := 1 ,
      

  3.   

    非常感谢!是不可定义字符类型的长度吧!show errors给出了更多的信息,不过还是看不懂:
    SQL> show errors;
    PACKAGE PKG_PAGE 出现错误:LINE/COL ERROR
    -------- -----------------------------------------------------------------
    5/46     PLS-00103: 出现符号 "("在需要下列之一时:
             := . ) , @ % default
             character
             符号 ":=" 被替换为 "(" 后继续。6/43     PLS-00103: 出现符号 "("在需要下列之一时:
             := . ) , @ % default
             character我装的是Oracle9i,有没有英文版的SQL*Plus?
      

  4.   

    1. 参数只声明类型,不要长度
    2. 给默认值是 :=,v_pageIndex 有错这两个地方改了就没问题了
      

  5.   


    CREATE OR REPLACE PACKAGE pkg_Page
    AS
          TYPE   myrctype   IS   REF CURSOR;      PROCEDURE   Page  (v_TableName varchar2, --表名
                             v_Fields varchar2 := '*', --字段名(全部字段为*)
                             v_OrderField varchar2, --排序字段(必须!支持多字段)
                             v_sqlWhere varchar2,--条件语句(不用加where)
                             v_pageSize number, --每页多少条记录
                             v_pageIndex number := 1 , --指定当前为第几页
                             v_TotalPage out number,
                             p_rc   OUT   myrctype);
    END   pkg_Page;oracle的参数是不用定义长度的。当然:= 1也是不能写成=1的。