Скрипт pl / sql для вычисления свободного места в табличном пространстве пользователей в oracle - PullRequest
1 голос
/ 08 октября 2011
SELECT tablespace_name, sum(bytes)/1024/1024 "MB Free"
  FROM dba_free_space 
 WHERE tablespace_name = 'USERS'
 GROUP BY tablespace_name;

Привет всем, приведенный выше запрос - это то, что я использую для отображения свободного места в пользовательском табличном пространстве, но как мне написать отдельный сценарий PL / SQL , чтобы сохранить его в отдельной таблице с именем табличного пространстваи отметка времени.

Пожалуйста, помогите мне, так как мне нужен этот прогон в планировщике заданий на каждый час.

Заранее спасибо

1 Ответ

2 голосов
/ 08 октября 2011

Если вы уже создали таблицу, в которой хотите хранить данные, просто

CREATE OR REPLACE PROCEDURE snap_free_space
AS
BEGIN
  INSERT INTO new_table( tablespace_name, free_bytes, collection_time )
    SELECT tablespace_name, sum(bytes), sysdate
      FROM dba_free_space
     GROUP BY tablespace_name;
END;
...