Sử dụng DBA_TAB_PARTITIONS
hoặc ALL_TAB_PARTITIONS
lượt xem thay vì USER_TAB_PARTITIONS
. Hai chế độ xem trước chứa TABLE_OWNER
(tức là lược đồ) sẽ giúp bạn hoàn thành mục tiêu của mình.
Sau đó, bạn có thể tham số hóa thủ tục của mình để lấy tên chủ sở hữu và tên bảng làm tham số:
PROCEDURE purge_ops_log_range_parts(pinOwner IN VARCHAR2,
pinTable_name IN VARCHAR2)
IS
BEGIN
FOR partition_rec IN (SELECT partition_name
,high_value
FROM DBA_TAB_PARTITIONS
WHERE TABLE_OWNER = pinOwner AND
table_name = pinTable_name)
LOOP
IF SYSDATE >= add_months(to_date(substr(partition_rec.high_value
,12
,19)
,'YYYY-MM-DD HH24:MI:SS')
,6)
THEN
execute_immediate('ALTER TABLE ' || pinOwner || '.' ||
pinTable_name || ' DROP PARTITION ' ||
partition_rec.partition_name);
END IF;
END LOOP;
END purge_ops_log_range_parts;
Chúc may mắn.