【问题标题】:PL/SQL Packages inserting count Number autmomatically in variablePL/SQL 包在变量中自动插入计数
【发布时间】:2015-07-29 16:54:39
【问题描述】:

练习是:

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

我试过这样但是不行:

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;

【问题讨论】:

    标签: oracle variables plsql count package


    【解决方案1】:

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

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

    2. “选择进入”的语法错误。

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

    创建或替换 FUNCTION BEACHCOMBER_COUNT 返回号码 是 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 书。

    【讨论】:

    • 虽然这确实得到了结果,但这并不能满足实际查询的需要,测试查询不能更改,所以它需要是一个包中的公共变量,它是 select 语句的结果...
    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多