mysql clob 创建索引_关于oracle clob 类型字段重建索引SQL及修复用户表空间索引空间的存储过程...

/*******************************

*

*修改集付通数据库默认表空间,临时表空间,索引表空间存储过程

*

*调用 : change_jft_tablespace(数据表空间名称,索引表空间名称) examp:exec change_jft_tablespace ('jft_data','jft_index');

*auther: fanwg@insigmacc.com

*date : 2013-04-10 17:29:12

*******************************/

create or replace procedure change_jft_tablespace(data_table_space_name in varchar,

index_table_space_name in varchar) is

i_count INT := 0;

--data_table_space_name varchar2(20):='';

--index_table_space_name varchar2(20):='';

--temp_table_space_name varchar2(20):='';

--修改表的数据表空间 记录集放到游标中

CURSOR c_data_sql IS

SELECT 'alter table ' || table_name || ' move tablespace ' ||

data_table_space_name as ddl,

table_name as tbname

FROM user_tables

where TABLESPACE_NAME <> upper(data_table_space_name);

--修改表的索引表空间 记录集放到游标中

CURSOR c_index_sql IS

SELECT 'alter index ' || index_name || ' rebuild tablespace ' ||

index_table_space_name as ddl,

table_name as tbname

FROM user_indexes

where TABLESPACE_NAME <> upper(index_table_space_name)

and index_type <> 'LOB';

begin

--create temporary tablespace jft_temp tempfile 'F:\orac11g\demo\temp\jft_temp01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local;

--create tablespace jft_data logging datafile 'F:\orac11g\demo\data\jft_data01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local;

--create tablespace jft_index logging datafile 'F:\orac11g\demo\index\jft_index01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local;

--alter user jft_test temporary tablespace jft_temp;

--alter user jft_test default tablespace jft_data;

--对于含有特殊类型clob字段的表需要特殊处理

-- 执行修改索引表空间

FOR r_mysql IN c_index_sql LOOP

DBMS_OUTPUT.put_line(r_mysql.ddl || ',' || r_mysql.tbname);

EXECUTE IMMEDIATE r_mysql.ddl;

i_count := i_count + 1;

END LOOP;

DBMS_OUTPUT.put_line('i_count: ' || i_count);

i_count := 0;

-- 执行修改数据表空间

FOR r_mysql IN c_data_sql LOOP

DBMS_OUTPUT.put_line(r_mysql.ddl || ',' || r_mysql.tbname);

EXECUTE IMMEDIATE r_mysql.ddl;

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 change_jft_tablespace;

/

今天发现插入数据索引失效的问题

后来发现上述却本造成索引无索了

解决办法:先修改表的表空间,再修改再的表的索引表空间

请将上述两段代码互换

下载次数: 3

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2013-04-10 20:45

浏览 3168

分类:数据库

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值