PL/SQL 包在变量中自动插入计数数字

PL/SQL Packages inserting count Number autmomatically in variable

练习是:

在名为 v_Guest_Count 的包中创建一个 public 变量 这是自动初始化的数量 嘉宾中的嘉宾table。使用以下 SQL: SELECT 计数(*) 来自客人;

我这样试过,但行不通:

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;

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

  1. 如果您想要 return 查询的标量结果,您需要在过程中使用 OUT 参数,或者创建一个函数来 return 该值。

  2. "select into" 的语法错误。

  3. 您无法访问 function/procedure.

  4. 之外的局部范围变量 (v_guest_count) 的值

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 书。