0

我需要以给定格式打印 pl/sql 中的数字吗?

1
1 2 
1 2 3
1 2 3 4
1 2 3 4 5

你能告诉我如何在输出屏幕的同一行中打印下两个命令吗?

dbms_output.put_line(j);
dbms_output.put_line(j+1);
4

2 回答 2

2

要在同一行上打印多个输出,请使用dbms_output.put代替dbms_output.put_line.

CAVEAT使用时dbms_output.put,您必须在之后刷新缓冲区 - 否则,您的输出将不会出现在屏幕上。

您的原始问题可以通过使用两个 for 循环来解决:

begin
  for i in 1 .. 10
  loop
    for j in 1 .. i
    loop
      dbms_output.put(to_char(j) || ' ');
    end loop;
    dbms_output.new_line;
  end loop;
end;
于 2013-10-29T13:37:59.730 回答
1

您可以使用纯 SQL 而不是 PL/SQL 执行此操作,如下所示:

select to_char(sum(res) over(order by res)) as res
  from ( select sum(power(10, level - 1)) over(order by level) as res
           from dual
        connect by level <= 5 )

结果:

RES
--------------------
1
12
123
1234
12345

To_char()函数仅用于将结果左对齐。

于 2013-10-29T13:22:50.847 回答