`

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

 
阅读更多
clob SQL:

ALTER TABLE SYSREPORT MOVE  TABLESPACE jft_index
LOB (CONTENT) STORE AS
(TABLESPACE jft_index);

CONTENT是clob字段
存储过程

  /*******************************
  *
  *修改集付通数据库默认表空间,临时表空间,索引表空间存储过程
  *
  *调用 : 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;
/


今天发现插入数据索引失效的问题
后来发现上述却本造成索引无索了
解决办法:先修改表的表空间,再修改再的表的索引表空间
  请将上述两段代码互换
分享到:
评论

相关推荐

    ORACLE中CLOB字段转String类型

    ### ORACLE中CLOB字段转String类型 在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何...

    Oracle如何对CLOB行字段来执行全文检索

    * CREATETEMPORARY 过程:创建一个临时的 BLOB 或 CLOB 和其对应的索引在用户的默认临时表空间中。 * ERASE 过程:擦除 LOB 的全部或部分内容。 * FILECLOSE 过程:关闭文件。 * FILECLOSEALL 过程:关闭所有之前...

    关于oracle中clob字段查询慢的问题及解决方法

    另外,Oracle还提供了全文索引(Full-Text Indexing)功能,通过CTXSYS.CONTEXT类型的索引,可以加速对CLOB字段的文本搜索。创建全文索引的SQL语句如下: ```sql create index search_id on table_name (column) ...

    oracle修改表空间的全部步骤,包含bob,clob字段

    本文将详细阐述如何在Oracle中修改表空间,包括处理BLOB和CLOB字段的具体步骤。 ### 修改表空间的背景与意义 表空间是Oracle数据库中的逻辑存储单元,用于组织和管理数据文件。随着业务的发展,原有的表空间可能...

    spring+hibernate操作oracle的clob字段

    在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB字段常被用来存储超过4000字节的信息。Spring和Hibernate框架结合使用可以有效地进行CLOB字段的操作。以下是实现这一功能的关键步骤和...

    Oracle多个表空间合并成一个表空间,验证通过

    ### Oracle 多个表空间合并成一个表空间详解 #### 背景介绍 在进行数据库维护时,可能会遇到需要将多个表空间合并为一个的情况。这种情况通常发生在新项目的开发过程中,尤其是当新项目需要引用来自其他表空间的...

    oracle中blob 字段类型的应用

    该过程首先构建SQL查询语句,然后使用EXECUTE IMMEDIATE执行动态SQL,获取指定ID的Clob字段,并在指定位置写入新数据。如果需要插入超过32766个字符,可以通过循环调用该过程来实现。 另一个示例`getclob`函数是一...

    Oracle Index 索引介绍

    反向索引主要应用于长文本字段,如CLOB和NCLOB,将索引键的最后一个字节作为第一个字节存储,提高查询性能。 4. **函数索引(Function-Based Index)** 允许基于列的函数结果创建索引,使得对函数的结果进行查询...

    DELPHI的CLOB和BLOB存取处理.zip_DELPHI的CLOB和BLOB存取处理_hallzgz

    在数据库编程领域,CLOB(Character Large Object)和BLOB(Binary Large Object)是用于存储大量文本和二进制数据的数据类型。在DELPHI中,处理这些大型对象时需要特殊的技术和策略。本篇文章将深入探讨DELPHI中...

    oracle数据库中如何处理clob字段方法介绍

    在Oracle数据库中,CLOB(Character Large Object)数据类型用于存储大文本数据,如文章、文档等,最大容量可达4GB或更大。由于其特殊性,处理CLOB字段需要一些特定的方法。以下是一些关键点的详细介绍: 1. **插入...

    Oracle 插入超4000字节的CLOB字段的处理方法

    OracleClob clob = new OracleClob((OracleConnection)m_objConn); OracleParameter param = new OracleParameter('clob', OracleDbType.Clob, clob, ParameterDirection.Input); param.Value = "超过4000字符的超常...

    oracle Blob Clob 大数处理 代码

    在创建表时,可以添加Blob或Clob字段来存储大对象。例如: ```sql CREATE TABLE MyTable ( ID NUMBER PRIMARY KEY, BlobData BLOB, ClobData CLOB ); ``` 2. **插入数据**: 插入Blob数据通常需要使用`UTL...

    oracle的数据类型_java中Clob型详细用法_struts中实现图片上传功能

    5. 配置数据库:创建相应的表,包含存储图片路径或元数据的字段,可能需要使用 BLOB 或 CLOB 类型来存储大文件。 6. 显示图片:在需要显示图片的页面,根据数据库中存储的路径加载图片。 注意,文件上传时要确保...

    ORACLE全球大会-ORACLE-SQL-Developer功能介绍.pdf

    通过对象浏览器,用户可以以树形结构查看和管理数据库中的各种对象,包括表、视图、索引、程序包、存储过程、函数、触发器、类型、序列、物化视图、日志、同义词、数据库链接、目录、回收站等。每个对象类型都有...

    oracle对大对象类型操作:blob,clob,nclob,bfile

    Oracle数据库系统支持对大型数据对象(LOBs,Large Objects)的操作,这包括BLOB、CLOB、NCLOB和BFILE四种类型。每种类型都有其特定的用途和特性,适用于存储不同类型的大数据。 1. BLOB(Binary Large Object): ...

    ORACLE常用的SQL命令

    - CREATE:创建各种数据库对象,如表、索引、视图、同义词、过程、函数和数据库链接。常见的字段类型有: - CHAR:固定长度字符串 - VARCHAR2:可变长度字符串 - NUMBER(M,N):数字类型,M为总长度,N为小数长度...

    判断blob字段是否为空

    在数据库管理与应用开发中,处理BLOB(Binary Large Object)类型字段是一项常见的需求,尤其是在存储大量二进制数据如图像、音频或视频文件时。本文将深入探讨如何判断一个BLOB字段是否为空,这是一个在数据库操作...

    Oracle数据库对象管理及备份与恢复.pdf

    首先,关于Oracle数据库对象管理,主要包括创建和修改表结构、管理索引、维护表分区、创建和管理视图及序列等操作。创建表(CREATE TABLE)是数据库管理中最基础的操作,涉及到数据类型、存储参数和数据块管理等特性...

    oracle格式化查看json数据

    例如,如果你有一个包含JSON对象的CLOB字段,你可以使用JSON_TYPE来检查特定键的类型,这在解析和验证数据时非常有用。 2. JSON_VALUE和JSON_QUERY: 这两个函数是提取JSON数据的核心工具。JSON_VALUE用于获取单个...

Global site tag (gtag.js) - Google Analytics