首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择COUNT INTO variable

选择COUNT INTO variable
EN

Stack Overflow用户
提问于 2020-05-01 18:17:52
回答 2查看 1.1K关注 0票数 0

我试图获取一个表的行数,并将其存储在一个变量中,这样我就可以使用该变量了。但是,如果我使用WHERE ROWNUM = 1;,它只会将其存储在变量中,但它只存储数字1,而不是实际的行数。我使用的整个select语句是:

代码语言:javascript
运行
复制
SELECT COUNT(*)
INTO vn_no_tickets
FROM tickets
WHERE ROWNUM = 1;

如果我不使用WHERE ROWNUM = 1;,我会得到一个错误"exact fetch返回的行数超过请求的行数“,但是当我使用它时,我只得到了1行,而不是实际的行数。谢谢

编辑:下面是完整的过程

代码语言:javascript
运行
复制
CREATE OR REPLACE PROCEDURE proc_ticket_exp IS
    vn_no_tickets NUMBER(4);
    vn_ticket_id tickets.ticket_id%TYPE;
    vd_exp_date tickets.expiration_date%TYPE;
    vc_customer_firstname tickets.customer_firstname%TYPE;
    vc_customer_surname tickets.customer_surname%TYPE;
    vd_one_week DATE;
    vc_fullname VARCHAR2(40); 
BEGIN
    vd_one_week := sysdate + 7;
    SELECT COUNT(*)
    INTO vn_no_tickets
    FROM tickets
    WHERE ROWNUM = 1;
    DBMS_OUTPUT.PUT_LINE (vn_no_tickets);

    WHILE vn_no_tickets != 0 LOOP
        SELECT expiration_date, ticket_id, customer_firstname, customer_surname
        INTO vd_exp_date, vn_ticket_id, vc_customer_firstname,  vc_customer_surname
        FROM tickets
        WHERE ROWNUM = vn_no_tickets;
        vc_fullname := CONCAT(vc_customer_firstname, CONCAT(' ', vc_customer_surname));
        IF vd_exp_date < vd_one_week THEN
            DBMS_OUTPUT.PUT_LINE (vc_fullname || 's ticket will expire within one week. Ticket Number: ' || vn_ticket_id);
        END IF;
        vn_no_tickets := vn_no_tickets - 1;
    END LOOP;        
END proc_ticket_exp;
/ 
SHOW ERRORS
EN

Stack Overflow用户

发布于 2020-05-01 18:34:19

失败的实际代码如下所示,因为在第一个查询中放入rownum=1,你将得到count also as 1,因此你在第一个查询中删除了vn_no_tickets will be 1.If,然后是vn_no_tickets will be greater than 1,下面的查询将是fail

代码语言:javascript
运行
复制
    SELECT expiration_date, ticket_id, customer_firstname, customer_surname
    INTO vd_exp_date, vn_ticket_id, vc_customer_firstname,  vc_customer_surname
    FROM tickets
    WHERE ROWNUM <= vn_no_tickets;
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61540586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档