Tôi đã nghĩ về việc viết một tiện ích giống như đơn giản tail -f
để "theo dõi" tiến trình của một số số liệu trong cơ sở dữ liệu:
create or replace function tail_f return varchar2_tab pipelined as
n number;
begin
loop
exit when ...
select count(*) into n from ... where ...;
pipe row(sysdate || ' n= ' || n);
dbms_lock.sleep(60);
end loop;
return;
end tail_f;
Và sau đó tôi muốn select * from table(tail_f)
vào SQL * Plus.
Để tìm nạp từng hàng một, tôi SET ARRAYSIZE 1
. Tuy nhiên, các bản ghi (ngoại trừ bản đầu tiên) được tìm nạp theo cặp.
Có một lời giải thích cho điều này và làm thế nào tôi có thể nhận được các hồ sơ ngay khi một trong những đường ống?