Sql 迭代选择列表中的每一行

Sql 迭代选择列表中的每一行,sql,oracle,plsql,Sql,Oracle,Plsql,例如,我有一个表,有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循环,对行进行计

例如,我有一个表,有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循环,对行进行计数,然后输出一个带有ROWNR的行,但这不起作用。 通常,我希望整个SELECT及其所有行具有相同的逻辑。
有什么建议吗?

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

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将引发太多行错误,因为您无法将所有行放入标量变量。

了解有关
游标的更多信息
您好,欢迎使用SO!通常,如果您计划在SQL查询中使用循环,那么您就做错了。请在此提供示例数据和所需结果,以便我们可以帮助您完成查询。