在PL/SQL中,可以使用DBMS_SPACE package来自动扩展和收缩数据库。
DECLARE
v_seg_owner VARCHAR2(30) := 'SCOTT';
v_seg_name VARCHAR2(30) := 'EMPLOYEES';
BEGIN
DBMS_SPACE.RESIZE_SEGMENT(
segment_owner => v_seg_owner,
segment_name => v_seg_name,
relative_extent_size => 2,
shrink => FALSE
);
END;
在上面的代码中,我们使用RESIZE_SEGMENT procedure来扩展SCOTT用户下的EMPLOYEES表的空间,将其大小增加2个相对大小的extent。
DECLARE
v_seg_owner VARCHAR2(30) := 'SCOTT';
v_seg_name VARCHAR2(30) := 'EMPLOYEES';
BEGIN
DBMS_SPACE.SHRINK_SEGMENT(
segment_owner => v_seg_owner,
segment_name => v_seg_name,
compact => TRUE
);
END;
在上面的代码中,我们使用SHRINK_SEGMENT procedure来收缩SCOTT用户下的EMPLOYEES表的空间,并使用compact参数来指定是否要压缩表。
通过使用DBMS_SPACE package中的相应procedure,您可以在PL/SQL中实现自动扩展和收缩数据库空间的功能。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: PL/SQL Developer下载安装及使用