【问题标题】:Iterate through every row from a SELECT遍历 SELECT 中的每一行
【发布时间】:2021-05-06 00:57:34
【问题描述】:

所以我有一个表格,例如 2 列和 3 行。 例如,我现在想使用 SELECT 遍历表中的每一行。

像这样:

IS
   v_text1 VARCHAR
   v_text2 VARCHAR
BEGIN
   SELECT text, ohterText INTO v_text1, v_text2 FROM table;
   v_text1 := v_text1 || ' ' || v_text2;
   DBMS_OUTPUT.PUT_LINE(v_text1);

我尝试在它周围放置一个 FOR LOOP 来计算行数,然后用 ROWNR 输出一行,但这不起作用。 一般来说,我希望整个 SELECT 及其所有行都使用相同的逻辑。 有什么建议吗?

【问题讨论】:

  • 了解更多关于cursor
  • 您好,欢迎来到 SO!一般来说,如果您计划在 SQL 查询中使用循环,那么您做错了。请在此处提供示例数据和所需结果,以便我们帮助您完成查询。

标签: sql oracle plsql


【解决方案1】:

按照你的说法,你不必声明任何变量,因为一切都可以完成

begin
  for cur_r in (select text ||' '|| othertext as result from your_table) loop
    dbms_output.put_line(cur_r.result);
  end loop;
end;

循环在这里是因为您想从该表中获取 所有 行。如果您不在循环中执行此操作,Oracle 将引发 TOO_MANY_ROWS 错误,因为您无法将所有行都放入标量变量中。

【讨论】:

    猜你喜欢
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 2015-04-14
    • 2010-11-30
    相关资源
    最近更新 更多