Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle:SQL động

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 (; ).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java kết nối với nhiều cơ sở dữ liệu

  2. Có phải ngày theo nghĩa đen '[yyyy-mm-dd] "của Oracle luôn sử dụng mẫu yyyy-mm-dd không?

  3. CẬP NHẬT về chế độ xem dường như bảo toàn khóa trong Oracle nâng ORA-01779

  4. Kết nối trái không cung cấp các giá trị null trong bảng sql

  5. Cập nhật cùng một bảng sau khi Chèn trình kích hoạt