精华内容
下载资源
问答
  • 由于开发人员把ess 项目下的大部分对象放到user 表...为了把ESS 的对象放到ess 默认的表空间ess中,我按如下几步操作: 1 找出要修改表空间的对象: select * from dba_tables where owner='ESS' and tablespace_...

    由于开发人员把ess 项目下的大部分对象放到user 表空间中,用imp/exp 导入正式库后,ess用户的对象还是在users 表空间中.为了把ESS 的对象放到ess 默认的表空间ess中,我按如下几步操作:

     

      1 找出要修改表空间的对象:

     

      

        select * from dba_tables  where owner='ESS' and tablespace_name = 'USERS';

     

       

       select * from dba_INDEXES where table_owner='ESS' and tablespace_name = 'USERS';

     

    2 . 生成批量修改的sql 语句

     

     

     select 'alter table ess.' || table_name || ' move tablespace ess;'
    from dba_tables where owner='ESS' and tablespace_name = 'USERS';

     

     

    select 'alter index ess.'||index_name||' rebuild online nologging tablespace ess;'
     from DBA_indexes
    WHERE table_owner='ESS' and tablespace_name = 'USERS'

     

     

     

     

    把生成sql 语句导到 到ess_table.txt和ess_index.txt 文件中

     

    3. 执行 ess_table.txt 和 ess_index.txt 文件 sqll 语句 ,就OK

     

    4  检查users 表空间,看看ess 用户的对象是不是少了


    转载于:https://blog.51cto.com/comtv/1548989

    展开全文
  • 由于开发人员把ess 项目下的大部分对象放到user ...为了把ESS 的对象放到ess 默认的表空间ess中,我按如下几步操作:  1 找出要修改表空间的对象: select * from dba_tables where owner='ESS' and tables...

     由于开发人员把ess 项目下的大部分对象放到user 表空间中,用imp/exp 导入正式库后,ess用户的对象还是在users 表空间中.为了把ESS 的对象放到ess 默认的表空间ess中,我按如下几步操作:

      1 找出要修改表空间的对象:

      

        select * from dba_tables  where owner='ESS' and tablespace_name = 'USERS';

       

       select * from dba_INDEXES where table_owner='ESS' and tablespace_name = 'USERS';

    2 . 生成批量修改的sql 语句

     select 'alter table ess.' || table_name || ' move tablespace ess;'
    from dba_INDEXES where tablespace_name='USERS' and tablespace_name = 'USERS';

    select 'alter index ess.'||index_name||' rebuild online nologging tablespace ess;'
     from DBA_indexes
    WHERE table_owner='ESS' and tablespace_name = 'USERS'

    把生成sql 语句导到 到ess_table.txt和ess_index.txt 文件中

    3. 执行 ess_table.txt 和 ess_index.txt 文件 sqll 语句 ,就OK

    4  检查users 表空间,看看ess 用户的对象是不是少了

     参考:http://blog.csdn.net/KimSoft/archive/2009/09/09/4536264.aspx

    转载于:https://blog.51cto.com/comtv/467434

    展开全文
  • 修改的表空间

    2010-12-31 11:55:00
       对于含有lob字段的表,在建立时,oracle会自动为lob字段建立两个单独的segment,一个用来存放数据,另一个用来存放索引,并且它们都会存储在对应表指定的表空间中,上面语句只能

    表做表空间迁移
        alter table tb_name move tablespace tbs_name;

     

    索引表空间做迁移

       alter index index_name rebuild tablespace tbs_name;

     

      对于含有lob字段的表,在建立时,oracle会自动为lob字段建立两个单独的segment,一个用来存放数据,另一个用来存放索引,并且它们都会存储在对应表指定的表空间中,上面语句只能移动非lob字段以外的数据,所以在对含有lob字段的表进行空间迁移,需要使用如下语句:

     

      例3alter table tb_name move tablespace tbs_name lob (col_lob1,col_lob2) store as(tablesapce tbs_name);

      项目实例:

      表空间迁移

      select 'alter table' ||table_name|| 'move tablespace tbs_name;' table_name from dba_tables where owner='%***%' and table_name like '%***%'

     

    lob字段

      select 'alter table' ||table_name|| 'move lob('||index_name||') store as (tablespace tbs_name);' from dba_indexes where owner='%***%' and index_name like '%***%'

     

    索引表空间

      select 'alter index' ||index_name|| 'rebuild tablespace tbs_name;' index_name from dba_indexes where owner='%***%' and table_name like '%***%'

     

      以上在oracle SQL*Plus WorksheetPL/SQL Deverloper中运行,将得出的运行结果再运行一次即可。

    使用查询的结果,这样就可以批量处理!

     

    展开全文
  • oracle下批量修改表所在的表空间

    千次阅读 2014-04-09 17:10:41
    一、修改索引index的表空间 1、查询当前用户所有LOB索引,并把表空间为“JCMS24”的索引,更新为:JCMS。(手动修改) ALTER TABLE 表名称 MOVE TABLESPACE 新表空间 LOB (表中类型为lob的字段名) STORE AS lob...
    

    特别提醒:所有操作均在system下进行

    一、修改索引index的表空间

    1、查询当前用户所有LOB索引,并把表空间为“JCMS24”的索引,更新为:JCMS。(手动修改)

    ALTER TABLE 表名称 MOVE
    TABLESPACE 新表空间
    LOB (表中类型为lob的字段名) STORE AS lobsegment
    (TABLESPACE 新表空间  );

     

    2、查询当前用户所有非LOB索引,并把表空间为“JCMS24”的索引,更新为:JCMS。

    DECLARE
      i_count INT := 0;
      CURSOR c_mysql IS
        SELECT 'alter index JCMS24.' || index_name ||
               ' rebuild tablespace JCMS' mysql
          FROM dba_INDEXES
         WHERE owner = 'JCMS24'
           and tablespace_name = 'JCMS24'
           and index_type <>'LOB';
    BEGIN
      FOR r_mysql IN c_mysql LOOP
        DBMS_OUTPUT.put_line(r_mysql.mysql);
        EXECUTE IMMEDIATE r_mysql.mysql;
        i_count := i_count + 1;
      END LOOP;
      DBMS_OUTPUT.put_line('i_count: ' || i_count);
    END;

     

    二、修改用户表table的表空间

    1、修改用户表table的表空间:alter table 表名 move tablespace 新表空间名;

    2、查询所有用户表:select * from user_tables;

    【脚本】

    查询当前用户的所有的数据表,并把表空间为“JCMS24”的用户表,修改为:JCMS。

     

    DECLARE
      i_count INT := 0;
      CURSOR c_mysql IS
        SELECT 'alter index JCMS24.' || index_name ||
               ' rebuild tablespace JCMS' mysql
          FROM dba_INDEXES
         WHERE owner = 'JCMS24'
           and tablespace_name = 'JCMS24'
           and index_type = 'LOB';
    BEGIN
      FOR r_mysql IN c_mysql LOOP
        DBMS_OUTPUT.put_line(r_mysql.mysql);
        EXECUTE IMMEDIATE r_mysql.mysql;
        i_count := i_count + 1;
      END LOOP;
      DBMS_OUTPUT.put_line('i_count: ' || i_count);
    END;

    展开全文
  • 修改空间alter table TABLE_NAME move tablespace TABLESPACENAME查询当前用户下所有表选择'alter table'||table_name ||'移动表空间tablespacename;'来自user_tables;2.修改索引空间alter index INDEX_...
  • oracle中修改表空间

    2019-09-25 17:27:40
    修改表索引所属表空间:alter index索引名 rebuild tablespace "表空间名称" 查询某表空间的所有表:select segment_name from dba_segments where owner='表空间名称' and segment_type='TABL...
  • Oracle 数据库修改索引表空间

    千次阅读 2013-06-17 15:37:38
    Oracle 数据库修改索引表空间,包括修改的表空间修改索引的表空间修改有CLOB字段的表空间等。 修改表空间语法 1、修改的表空间 alter table TABLENAME move tablespace TABLESPACENAME;  ...
  • oracle修改表和索引的表空间

    千次阅读 2014-09-03 14:38:56
    表做空间迁移时,使用如下语句... 索引表空间做迁移,使用如下语句:  例2:alter index index_name rebuild tablespace tbs_name;  对于含有lob字段的表,在建立时,oracle会自动为lob字段建立两个单独的segm
  • 索引表空间做迁移,使用如下语句:例2:alter index index_name rebuild tablespace tbs_name;对于含有lob字段的表,在建立时,oracle会自动为lob字段建立两个单独的segment,一个用来存放数据,另一个用来存放索引,...
  • 工作日记之《修改索引现有表空间》//dba_indexes可查询所有索引,以及索引部分信息,可以灵活运用于其他用途//假设用户USER1现有表空间TS1、TS2,需要迁移其下所有表空间TS1索引到TS2中,可使用以下语句(在pl sql...
  • 解决方法1 alter table xxx move tablespace xxx; move过table以后索引会丢失,所以还重建索引,先查找失效索引 select index_name from user_indexes where ...这个方法缺点是对于较多库会非常麻烦,要m...
  • oracle 修改索引现有表空间

    万次阅读 2013-10-10 20:33:36
    工作日记之《修改索引现有表空间》 //dba_indexes可查询所有索引,以及索引部分信息,可以灵活运用于其他用途 //假设用户USER1现有表空间TS1、TS2,需要迁移其下所有表空间TS1索引到TS2中,可使用以下语句(在pl...
  • ORACLE修改表空间方法

    2012-11-26 17:42:47
    1.修改表空间 ...将表移至新的表空间 2.修改表的索引的空间  alter index INDEX_NAME rebuild tablespace TABLESPACENAME 将索引移至指定表空间 3.给表空间增加数据文件 ALTER TABLESPACE TB
  • sql ...1.查询出当前用户下所有索引进行表空间修改的sql语句。 select 'alter index '|| index_name ||' rebuild tablespace tablespacename;' from user_indexes; 2.执行第1步所有查询结果。 ...
  • 索引表空间做迁移,使用如下语句:例2:alter index index_name rebuild tablespace tbs_name;对于含有lob字段的表,在建立时,oracle会自动为lob字段建立两个单独的segment,一个用来存放数据,另一个用来存放索引,...
  • 表做空间迁移时,使用如下语句: ... 索引表空间做迁移,使用如下语句:  例2:alter index index_name rebuild tablespace tbs_name;  对于含有lob字段的表,在建立时,oracle会自动为lob字段建立两个单独的s...
  • 索引介绍:对记录集多个字段进行排序方法,树状目录结构 类似与书“目录”类型:Btree、B+tree、hash优点:加快查询记录速度缺点 : 会减慢编辑记录速度,且占用磁盘物理存储空间(delete insert ...
  • 环境说明:export在tbs_skate表空间的数据,现在想import到指定的表空间tbs_wyzxg,已经修改了用户的默认表空间为tbs_wyzxg 关于此问题,作如下解释:    Oracle并没有提供什么参数来指定要导入哪个表空间,...
  • 1.修改表的空间alter table TABLE_NAME move tablespace TABLESPACENAME查询当前用户下所有select 'alter table'|| table_name ||'move tablespace tablespacename;...2.修改表的索引的空间alter index IN...
  •  Oracle并没有提供什么参数来指定要导入哪个表空间,数据默认将导入到原本导出时数据所在的表空间中,但是我们可以通过以下的方法来实现导入到不同的表空间。  1.在IMP时候使用INDEXFILE参数  ...
  • 用到临时表空间的几种SQL CREATE INDEX SELECT ... ORDER BY SELECT DISTINCT ... SELECT ... GROUP BY SELECT ... UNION SELECT ... INTERSECT SELECT ... MINUS 在创建临时表或者临时表上索引时候,也会使用...
  • Oracle并没有提供什么参数来指定要导入哪个表空间,数据默认将导入到原本导出时数据所在的表空间中,但是我们可以通过以下的方法来实现导入到不同的表空间。  1.在IMP时候使用INDEXFILE参数  当给此参数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 496
精华内容 198
关键字:

修改index的表空间