Bạn có thể sử dụng SQL động:
create or replace function get_table_count (table_name IN varchar2)
return number
is
table_count number;
begin
execute immediate 'select count(*) from ' || table_name into table_count;
dbms_output.put_line(table_count);
return table_count;
end;
Ngoài ra còn có một cách gián tiếp để lấy số hàng (sử dụng chế độ xem hệ thống):
create or replace function get_table_count (table_name IN varchar2)
return number
is
table_count number;
begin
select num_rows
into table_count
from user_tables
where table_name = table_name;
return table_count;
end;
Cách thứ hai chỉ hoạt động nếu bạn đã thu thập số liệu thống kê trên bảng trước khi gọi hàm này.