不行,如去掉,则发生如下错误;
-------- -----------------------------------------------------
0/0      PL/SQL: Compilation unit analysis terminated
1/14     PLS-00905: 对象 SA.STREAM 无效
1/14     PLS-00304: 如果没有说明,则无法编译 'STREAM' 主体

解决方案 »

  1.   

    PLS-00905 object string is invalidCause: An invalid package specification or stored subprogram was referenced. A package specification or stored subprogram is invalid if its source code or any database object it references has been DROPped, REPLACEd, or ALTERed since it was last compiled.Action: Find out what invalidated the package specification or stored subprogram, then make sure that Oracle can recompile it without errors.
      

  2.   

    --最後加包的結束語句
    CREATE OR REPLACE  PACKAGE BODY STREAM  AS
    PROCEDURE GETRECORDS(CUR_LOCATIONS OUT T_CURSOR, LSH_ IN NUMBER, DBXMBM_ IN VARCHAR2(6))
    IS
    BEGIN
    OPEN CUR_LOCATIONS FOR
    SELECT JDXH, JDMC, BMBM FROM BJTSLCB WHERE LSH = LSH_ AND DBXMBM = DBXMBM_ ORDER BY JDXH ASC;
    END GETRECORDS;
    end STREAM;
    /
      

  3.   

    create or replace package pk1
    is
     type t_cur is ref cursor;
     procedure pt1 ( cur1 out t_cur,las in number, sas in varchar2);
    end;create or replace package body pk1
    is
     procedure pt1 ( cur1 out t_cur,las in number, sas in varchar2)
     is
     begin
      open cur1 select 1 as a from dual;
     end;
    end;
      

  4.   

    我把包头中的(6)也去掉了,此时仍报编译错误,但是用show error;命令却报;没有错误.
      

  5.   

    --最後加包的結束語句
    end STREAM;
      

  6.   

    谢谢包子,end stream;我已经加了,只是发帖的时候没有粘上来.
    刚才我把原来的包头和包体全部删除了,按照小孬的方法去掉(6),重新创建包头和包体,成功了!!
    但我不解,为什么不能加?