همانطور که می دانید اوراکل برای هر 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
ایمیل:[email protected]
تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال میکنید
برچسب: نویسنده: خنجی بازدید: 85 تاريخ: شنبه 31 تير 1402 ساعت: 14:31