包头:
create or replace package pack_data is
procedure proc_test(recordCount out number);
end pack_data;
编译无误!
包体:
CREATE OR REPLACE PACKAGE BODY pack_data as
procedure proc_test(recordCount out number)
is
begin
   select count(*) into recordCount from data;
   end;
end;
包体编译出现的错误信息:
PL/SQL: ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-320: 此表达式的类型说明不完整或格式不正确Error: PL/SQL: SQL Statement ignored目标指向的就是那个sql语句啊!~
求大侠指点迷津啊!
求大侠指点迷津啊!
求大侠指点迷津啊!

解决方案 »

  1.   

    我编译怎么没有问题?
    CREATE TABLE data
    (id NUMBER(3));INSERT INTO data
    VALUES(1);COMMIT;CREATE OR REPLACE PACKAGE pack_data
    IS
    PROCEDURE proc_test
    (recordCount OUT NUMBER);
    END pack_data;
    /CREATE OR REPLACE PACKAGE BODY pack_data
    AS
    PROCEDURE proc_test
    (recordCount OUT NUMBER)
    IS
    BEGIN
       SELECT COUNT(*)
       INTO recordCount
       FROM data;
    END;
    END;
    /你试试?
      

  2.   

    是不是因为表的问题啊?
    select into或者是count函数对于表有特殊的要求吗?
      

  3.   

    其他表可以正常访问吗?
    是不是NLS_DATE_FORMAT的问题,如果是,try:
    alter session set nls_date_format=''yyyy.mm.dd hh24:mi:ss''
      

  4.   

    问题原来出在表上 建表的时候用了关键字但是没有提示错误 结果pl/sql里面编译通不过 具体的错误信息又提示不出来!唉
    多谢大家捧场,谢谢谢谢!