批量修改oracle 用户的表空间

/* Formatted on 2012-10-11 14:17:04 (QP5 v5.115.810.9015) */
--进入到该用户下进行操作

1.修改表
DECLARE
   i_count   INT := 0;
   execsql   VARCHAR2 (1000);
   CURSOR c_mysql
   IS
      SELECT   'alter table  '
               || table_name
               || '  move tablespace UUMS'
               mysql
        FROM   user_all_tables;
        WHERE  tablespace_name = 'YCTS';
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);
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line (
         '异常:' || 'sqlcode:' || SQLCODE || ' sqlerrm : ' || SQLERRM
      );
END;

2.修改索引

DECLARE
   i_count INT := 0;
   CURSOR c_mysql IS
     SELECT 'alter index YCTS.' || index_name ||
            ' rebuild tablespace UUMS' mysql
       FROM dba_INDEXES
      WHERE owner = 'UUMS'
        and tablespace_name = 'YCTS'
        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;

3.手动修改blob

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值