اوراکل 23c – تغییر نام LOB segment

همانطور که می دانید اوراکل برای هر LOB segment یک نام خودکار با پیشوند SYS_LOB ایجاد می کند:

SQL> create table asnad( id number, doc clob);
Table created

SQL> select segment_name from dba_lobs where table_name='ASNAD';
SEGMENT_NAME
------------------------------
SYS_LOB0000136126C00002$$

در نسخه 21c برای تغییر نام SYS_LOBها می بایست LOB segment را move داد که این کار بسیار پرهزینه بود و چالشهایی نظیر بازسازی ایندکسهای جدول را به همراه داشت:

SQL> insert into ASNAD values(1,'my name is vahid');
1 row inserted
SQL> commit;
Commit complete
SQL> create index ind on asnad(id);
Index created
SQL> alter table asnad move lob(doc) store as asnad_doc;
Table altered
SQL> select segment_name from dba_lobs where table_name='ASNAD';
SEGMENT_NAME
----------------
ASNAD_DOC

SQL> select index_name from user_indexes where status='UNUSABLE';
INDEX_NAME
---------------
IND

در نسخه 23c برای تغییر نام LOB segment نیازی به جابجا کردن دیتا نخواهد بود و صرفا با اجرای دستور alter table rename lob می توانیم نام آن را تغییر دهیم:

SQL> create table asnad( id number, doc clob);
Table created
SQL> create index ind on asnad(id);
Index created
SQL> insert into ASNAD values(1,'my name is vahid');
1 row inserted
SQL> commit;
Commit complete
SQL> select segment_name from dba_lobs where table_name='ASNAD';
SEGMENT_NAME
---------------------------
SYS_LOB0000136139C00002$$

SQL> alter table asnad rename lob(doc) "SYS_LOB0000136139C00002$$" to asnad_doc;
Table altered
SQL> select segment_name from dba_lobs where table_name='ASNAD';
SEGMENT_NAME
--------------
ASNAD_DOC


SQL> select index_name from user_indexes where status='UNUSABLE';
no rows selected

برای جداول پارتشین شده هم می توان به روش زیر عمل کرد:

alter table table_name rename lob(column_name) partition old_segment_name to new_segment_name;

 

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:vahidusefzadeh@gmail.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *