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

Tự động thả phân vùng cũ nhất trong oracle 11G

Tôi không biết bất kỳ tiện ích hoặc chức năng oracle nào để làm điều này. Bạn có thể tìm thấy thông tin bạn cần để viết chương trình của riêng mình để thực hiện việc này trong các chế độ xem DBA_TAB_PARTITIONS hoặc ALL_TAB_PARTITIONS, tương tự như sau:

SELECT TABLE_OWNER, TABLE_NAME, PARTITION_NAME, HIGH_VALUE
  FROM SYS.DBA_TAB_PARTITIONS
  WHERE TABLE_OWNER = strSchema AND
        TABLE_NAME = strTable

trong đó strSchema và strTable là lược đồ và bảng mà bạn quan tâm. HIGH_VALUE là trường DÀI chứa mã cho lệnh gọi hàm TO_DATE (giả sử bảng của bạn được phân vùng trên trường ngày tháng); bạn sẽ cần gán HIGH_VALUE cho một trường LONG, sau đó gán LONG cho một VARCHAR2 để nhận giá trị ở đâu đó nó có thể được thao tác, theo cách tương tự như:

lHigh_value     LONG;
strDate_clause  VARCHAR2(100);

lHigh_value := aRow.HIGH_VALUE;
strDate_clause := lHigh_value;

Sau đó, bạn chỉ cần trích xuất các trường thích hợp từ mệnh đề DATE để xác định phân vùng nào bạn cần bỏ.

Chia sẻ và tận hưởng.



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

  2. Hàm REMAINDER () trong Oracle

  3. Xem ứng dụng oracle và nhận:java.lang.ClassNotFoundException:oracle.forms.engine.Main

  4. Cách tốt nhất để tìm kiếm kiểu dữ liệu Dài trong cơ sở dữ liệu Oracle là gì?

  5. Cách cấp quyền truy cập vào v $ views (v $ session, v $ instance)