ここで私たちは、一度に複数のユーザのテーブルとインデックスを移動したいときに使用する単純なクエリを提示します。
その一つ一つにするには:
表XXXXXX MOVE TABLESPACEのTESTを改変すること。
ALTER INDEXは、TABLESPACEのTESTを再構築XXXXXX。
'ALTER INDEX' を選択|| OWNER || '' || INDEX_NAME || 'TABLESPACEをREBUILD' || TABLESPACE_NAME || ';' OWNER IN( 'オーナ1'、 'オーナ2')DBA_INDEXESから。
SELECT 'のALTER TABLE' || OWNER || '' || TABLE_NAME || 'MOVEのTABLESPACE' || TABLESPACE_NAME || ';' OWNER IN( 'オーナ1'、 'オーナ2')DBA_TABLESから。
テストケース:
1.createテストユーザー、テーブル、インデックス
SQL > 作成し たユーザ識別テストでテストを。 SQL > 作成 テーブル T(int型); SQL > 作成し たインデックス my_indexを上トン(A);
ユーザーテストが所有2.selectオブジェクト
A33用SQL> COLのOBJECT_NAME A33用SQL> COL所有者 A33のためのSQL> COLのOBJECT_TYPE SQL>選択所有者、object_nameの、OBJECT_TYPE、所有者= 'TEST' DBA_OBJECTSからのステータス。 OWNER OBJECT_NAME OBJECT_TYPEのSTATUS ---------------------- ---------------------- - ------------------------------- ------- TESTのMY_INDEXのINDEX VALID 有効なテストT表
別の表領域への移動テーブルの3.example
SQL > を選択し TABLE_NAME、TABLESPACE_NAME から DBA_TABLES 所有者は= ' TEST ' ; TABLE_NAME TABLESPACE_NAME - ---------------------------------------------- -------------------------------------------------- ------------------------------ -------------------- ---------- Tのユーザー SQL > 変更テーブルは、表領域TESTを移動test.t。テーブル 変更されました。 SQL > を選択し TABLE_NAME、TABLESPACE_NAME から DBA_TABLES 所有者は= ' TEST ' ; TABLE_NAME TABLESPACE_NAME - ---------------------------------------------- -------------------------------------------------- ------------------------------ -------------------- ---------- T TEST
別の表領域への移動インデックスの4.example
SQL > 設定ライン222 SQL > COLのINDEX_NAME 用A33 SQL > COLのTABLE_NAME 用A33 SQL > 選択 INDEX_NAME、TABLE_NAME、TABLESPACE_NAME から DBA_INDEXES 所有者は= ' TEST ' 。 INDEX_NAME TABLE_NAME TABLESPACE_NAME - ------------------------------- ------------------- -------------------------------------------------- -------------------------------------------------- --------- ------------------------------ MY_INDEX Tユーザー SQL > 変更 インデックスを再構築しtest.MY_INDEX表領域TEST; インデックスが変更されました。 SQL > を選択し INDEX_NAME、TABLE_NAME、TABLESPACE_NAME から DBA_INDEXES どこ OWNER = ' TEST ' ; INDEX_NAME TABLE_NAME TABLESPACE_NAME - ------------------------------- -------------- -------------------------------------------------- -------------------------------------------------- -------------- ------------------------------ MY_INDEX T TEST
5.transferユーザーのデフォルト表
SQL > セットライン222 SQL >コルのユーザー名のためのA33 SQL >コルDEFAULT_TABLESPACE 用A33 SQL > を選択し、ユーザー名を、DEFAULT_TABLESPACE から DBA_USERS USERNAME = ' TEST ' ; SQL > を選択し、ユーザー名、DEFAULT_TABLESPACE から DBA_USERS USERNAME = ' TEST ' ; USERNAME DEFAULT_TABLESPACE - ---------------------------------------------- -------------------------------------------------- ------------------------------ -------------------- ---------- テストユーザーの SQL > 変更する ユーザーテストのデフォルトの表領域TESTを、 ユーザが変更されました。 SQL > を選択し、ユーザー名、DEFAULT_TABLESPACE から DBA_USERS USERNAME =' TEST ' ; USERNAME DEFAULT_TABLESPACE - ---------------------------------------------- -------------------------------------------------- ------------------------------ -------------------- ---------- TESTテスト