create or replace package test
is 
 v_total number;
end test;create or replace package body test
is
   select sum(salary) into v_total from zwj.zwj_tab_test1表一;
end test;
--调用
begin
dbms_output.put_line(test.v_total);
end;这个有什么问题啊,报无法找到正在调用的包,前面二步执行都OK的,这个到底要怎样调用啊,,

解决方案 »

  1.   

    我实测没有问题:
    数据:CREATE TABLE T54
    (
        购物人 VARCHAR2(20),
        商品  VARCHAR2(20),
        数量  NUMBER(4)
    );
    INSERT INTO T54 VALUES('A', '甲', 1);
    INSERT INTO T54 VALUES('B', '乙', 2);
    INSERT INTO T54 VALUES('C', '丙', 5);
    INSERT INTO T54 VALUES('A', '丁', 4);
    INSERT INTO T54 VALUES('B', '甲', 3);
    INSERT INTO T54 VALUES('D', '乙', 8);包规范:CREATE OR REPLACE PACKAGE PackageTest IS  
        v_total NUMBER;
    END PackageTest;
    包体:CREATE OR REPLACE PACKAGE BODY PackageTest IS  BEGIN
        SELECT SUM(数量) into v_total FROM T54;
    END PackageTest;
    测试PL/SQL块declare begin
      DBMS_OUTPUT.PUT_LINE(PackageTest.v_total);  
    end;
    输出结果:23
      

  2.   

    create or replace package body test
    is
       select sum(salary) into v_total from zwj.zwj_tab_test1表一;
    end test;创建包体的语句少了个  begin
      

  3.   

    create or replace package body test
    is
    begin
      select sum(salary) into v_total from zwj.zwj_tab_test1表一;
    end test;