Dưới đây là một ví dụ đơn giản về các bảng trong lược đồ của riêng bạn:
set serveroutput on
declare
c number;
begin
for r in (select table_name from user_tables) loop
execute immediate 'select count(*) from ' || r.table_name
into c;
dbms_output.put_line(r.table_name ||': '|| c);
end loop;
end;
/
Để xem bảng của người khác, bạn cần sử dụng dba_tables
khi bạn bắt đầu thử, hoặc nhiều khả năng là all_tables
vì điều đó sẽ loại trừ các bảng mà bạn không thể đếm được, nhưng bạn cũng sẽ cần chỉ định chủ sở hữu trong count
tuyên bố.
Thông thường, bạn muốn sử dụng các biến liên kết để tránh việc đưa vào SQL, nhưng bạn phải chỉ định tên đối tượng bằng cách nối như thế này.
Một điều gì đó khác cần lưu ý là bạn đã mắc phải lỗi trong truy vấn của mình, nhưng Egor hiện đã xóa khỏi câu hỏi. Chuỗi SQL động bạn thực thi không được kết thúc bằng dấu chấm phẩy (;
).