0

我很好奇如何编写这个过程。我正在使用集合对象从表中提取信息。然后我dbms_output.put_line用来显示我收集的值。

我想在输出的最后一行附加一行。例如:

表A

col1 col2  
1     3  
2     4  

我提取值并用于dbms_output.put_line显示这些项目。

它会显示:

1,3  
2,4

有没有办法将“这是最后一行”附加到收集/显示的最后一行以显示...

1,3  
2,4 This is the last line

dbms_output.put_line在收集过程中, 我尝试在循环之后添加另一个,但它只是将其视为 2 行。

1,3  
2,4  
This is the last line. 
4

1 回答 1

1

One way to do it is to insert a new line before each line of text - except the first line.

create table taba(
 col1 number,
 col2 number
);
insert into taba values (1,2);
insert into taba values (3,4);
commit;

declare
  type tab_t is table of taba%rowtype;
  tab tab_t;
  cursor c is select * from taba;
  first_row boolean;
begin
  open c;
  fetch c bulk collect into tab;
  close c;

  first_row := true;
  for x in 1..tab.count loop
     if not first_row then
        dbms_output.put_line('');
     end if;
     first_row := false;
     dbms_output.put( tab( x ).col1 || ',' || tab( x ).col2 );
  end loop;
  if not first_row then
     dbms_output.put_line('   This is the last line');
  else
     dbms_output.put_line('The table is empty');
  end if;
end;
/

Results:

1,2
3,4   This is the last line
于 2013-10-09T16:04:49.687 回答