PL / SQL包以自动方式在变量中插入count数

时间:2015-05-18 08:59:28

标签: oracle variables plsql count package

练习是:

在名为v_Guest_Count的包中创建一个公共变量 用数字自动初始化 来宾表中的客人。使用以下SQL: SELECT COUNT(*) 来自客人;

我试过这样但是不起作用:

create or replace PACKAGE BODY BEACHCOMBER IS
v_guest_count NUMBER;

BEGIN
SELECT COUNT (*) FROM A2_GUESTS
INTO v_guest_count;
END BEACHCOMBER;

谢谢

编辑:这是测试代码:

PROMPT 
PROMPT TESTING: Initialisation of the v_Guest_Count variable.  Expect 81.
BEGIN
   DBMS_OUTPUT.PUT_LINE('v_Guest_Count has been initialised to: '||TO_CHAR(BEACHCOMBER.v_Guest_Count));
END;

1 个答案:

答案 0 :(得分:-1)

你的PL / SQL有很多错误。我修改了下面的代码。

  1. 如果要从查询中返回标量结果,则需要在过程中使用OUT参数,或者创建一个函数来返回值。

  2. “select into”的语法错误。

  3. 您无法在函数/过程之外访问本地范围的变量(v_guest_count)的值。

  4. create or replace FUNCTION BEACHCOMBER_COUNT
        RETURN NUMBER
        IS
        v_guest_count NUMBER;

    BEGIN SELECT COUNT (*) INTO v_guest_count FROM dual; -- A2_GUESTS; RETURN v_guest_count; END; PROMPT PROMPT TESTING: Initialisation of the v_Guest_Count variable. Expect 81. BEGIN DBMS_OUTPUT.PUT_LINE('v_Guest_Count has been initialised to: '||TO_CHAR(BEACHCOMBER_COUNT())); END; /

    我建议你买一本好的pl / sql书。