自从把数据库字符集变更为UTF8之后,原来VARCHAR2(4000)的字段无法容纳2000个汉字了,于是需要改变数据类型为CLOB。CLOB理论上支持 4G 字节容量。
直接执行
ALTER TABLE SAMPLE_TBL MODIFY column_name CLOB;
会发生类似
ORA-22858: 数据类型变更无效。
的错误。无法直接把VARCHAR2变更为CLOB类型。
因此,执行以下PL/SQL脚本,成功地把字段的类型从VARCHAR2变更为CLOB。
要是有更简便的方法就好了。
ALTER TABLE SAMPLE_TBL RENAME COLUMN column to column_old;
ALTER TABLE SAMPLE_TBL ADD column CLOB;
DECLARE
CURSOR cu is SELECT * FROM SAMPLE_TBL;
BEGIN
FOR cu_rec IN cu LOOP
UPDATE SAMPLE_TBL SET column = cu_rec.column_old WHERE ID = cu_rec.ID;
END LOOP;
END;
/
ALTER TABLE SAMPLE_TBL DROP (column_old);
分享到:
相关推荐
创建一个实现`org.apache.ibatis.type.TypeHandler`接口的类,重写`setParameter`和`getResult`方法,确保在SQL语句执行前能将Java对象转换为CLOB,执行后又能从CLOB还原为原始数据。 2. **配置MyBatis** 在...
在Oracle数据库中,将CLOB字段转换为字符串类型是常见需求之一。通过使用`DBMS_LOB`包、内置函数如`SUBSTR`以及`TO_CHAR`,可以有效地实现这一目标。此外,还需注意性能优化措施,例如分段读取和合理设计查询逻辑,...
这段SQL语句尝试将表`T_sbs`中的`clob`字段修改为`VARCHAR2(20)`类型。然而,需要注意的是,在实际操作中直接通过`ALTER TABLE`命令将CLOB字段转换为VARCHAR2可能会遇到以下问题: #### 问题1:数据丢失风险 由于...
这个错误通常意味着你试图插入的字符串超过了Oracle数据库允许的最大长度,对于VARCHAR2类型,这个限制是4000个字符;而对于CLOB类型,虽然没有硬性长度限制,但一次PL/SQL语句中的绑定变量值不能超过4000个字符。 ...
是处理wm_concat中以varchar处理合并列字段过小。 clob 可以加大处理。 oracle 9I oracle 10G 必备
接下来,使用`DBMS_LOB.SUBSTR`按块读取BLOB数据,将其转换为`VARCHAR2`类型,再使用`DBMS_LOB.WRITEAPPEND`将转换后的数据写入到CLOB中。最后返回转换后的CLOB数据。 #### 4. 更新表中的数据 在实际应用中,一旦...
Oracle CLOB 行字段全文检索实现方法 Oracle 数据库中,CLOB 行字段是一种常用的数据类型,用于存储大文本数据。然而,在 Oracle8i 版本之前,对大字段 CLOB 仍然不支持在 where 子句直接的 Like 操作。这使得...
- 这个错误通常发生在尝试直接改变字段类型时,特别是在从固定长度的类型(如`VARCHAR2`)转换到变长类型(如`CLOB`)时。 - 解决方案是先创建一个新的字段,然后将旧字段的数据迁移到新字段中,最后删除旧字段...
在实际应用中,当需要存储的文章、报告或者XML文档等文本信息超过常规VARCHAR2类型的限制时,CLOB便成为首选。 ### 二、向Oracle数据库插入Clob大段文本的方法 #### 方法一:使用OracleParameter和ExecuteNonQuery...
相比于VARCHAR2类型的4000字符限制,CLOB提供了更灵活、更强大的文本数据存储能力。 ### 二、转换字符串为CLOB类型的方法 #### 1. **使用Oracle.NET接口** 在C#中操作Oracle数据库通常会用到Oracle.NET接口,...
在Oracle数据库中,CLOB类型的字段可以被看作是一个指向实际存储位置的指针,而数据本身可能存储在数据库的不同物理位置。因此,在进行CLOB数据的读取和写入时,需要通过特定的方法来访问这些数据。 ### Oracle...
总结来说,Oracle的CLOB类型是处理大数据字段的关键,它弥补了VARCHAR2类型的不足,为大数据存储提供了可靠的解决方案。在实际开发中,熟练掌握CLOB的使用方法,可以有效地管理大量的文本信息,提高系统的存储效率和...
在Oracle数据库中,`VARCHAR`与`VARCHAR2`是两种常见的用于存储可变长度字符串的数据类型。尽管它们在名称上相似,但在实际应用中却存在一定的差异。本文将详细介绍这两种数据类型的特性及其应用场景,帮助读者更好...
### Oracle CHAR, VARCHAR, VARCHAR2 的区别与使用方法 在 Oracle 数据库中,字符串类型是极为常见的数据类型之一,主要用于存储文本数据。其中最常用的三种类型包括:`CHAR`, `VARCHAR`, 和 `VARCHAR2`。这三种...
另一种方法是将char类型字段改为varchar2类型。在大多数情况下,varchar2类型是更好的选择,因为它可以存储变长字符串,而char类型只能存储固定长度的字符串。 在使用jdbc查询时,也需要注意char类型字段的特殊性。...
如果一个字段可能的值是不固定长度的,我们只知道它不可能超过 10 个字符,把它定义为 varchar(10) 是最合算的。varchar 类型的实际长度是它的值的实际长度+1,多出来的一个字节用于保存实际使用了多大的长度。 3. ...
Oracle数据库支持多种数据类型,包括数值类型(如NUMBER、INTEGER、BINARY_FLOAT等)、字符类型(如VARCHAR2、CHAR、CLOB等)、日期时间类型(如DATE、TIMESTAMP等)以及二进制类型(如RAW、BLOB等)。在实际应用中...
首先,char 是定长的字符串类型,例如 char(10) 表示这个字段的长度是 10 个字符,如果我们存储的数据少于 10 个字符,剩下的空间将被空格填充,而 varchar2 则不同,varchar2(10) 只是表示这个字段的最大长度是 10 ...