DBA_TAB_PARTITIONS
का उपयोग करें या ALL_TAB_PARTITIONS
USER_TAB_PARTITIONS
. के बजाय दृश्य . पहले के दो दृश्यों में एक TABLE_OWNER
होता है (यानी स्कीमा) कॉलम जो आपको अपना लक्ष्य पूरा करने में मदद करे।
फिर आप स्वामी और तालिका के नामों को पैरामीटर के रूप में लेने के लिए अपनी प्रक्रिया को पैरामीटराइज़ कर सकते हैं:
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;
शुभकामनाएँ।