【问题标题】:Outputting variable result from Oracle loop从 Oracle 循环输出变量结果
【发布时间】:2018-10-06 01:32:06
【问题描述】:

我想为 ID 介于 10 和 40 之间的每条记录输出 STATEMENT_NUMBER

我尝试编写以下内容:-

DECLARE
    tempid       NUMBER := 10;
    tempresult   VARCHAR2(20);
BEGIN
    LOOP
        SELECT
            statement_number
        INTO
            tempresult
        FROM
            tblstatementsnew
        WHERE
            id = tempid;

        dbms_output.put_line(tempresult);
        tempid := tempid + 1;
        EXIT WHEN tempid = 40;
    END LOOP;
END;

..但我得到了错误:-

*原因:未从对象中找到数据。 *操作:对象中没有数据,可能是由于提取结束。

我很欣赏获得这些结果的更简单的方法,但我正在尝试更多地了解循环的工作原理。

【问题讨论】:

标签: sql oracle


【解决方案1】:

我希望您的代码比打印语句更复杂。但是,请考虑使用隐式游标:

BEGIN
    FOR v_tempresult IN (SELECT statement_number 
                           FROM tblstatementsnew 
                           WHERE id BETWEEN 10 AND 40)
    LOOP
        dbms_output.put_line(v_tempresult.statement_number);
    END LOOP;
END;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
  • 2012-09-23
  • 2014-02-28
  • 2019-03-03
  • 1970-01-01
  • 2019-06-24
  • 2018-01-11
相关资源
最近更新 更多