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.