`

转换CLOB字段类型为VARCHAR2

 
阅读更多

转换CLOB字段类型为VARCHAR2

今天同事过来找我,她在创建 一个表的时候不小心把字段建成CLOB类型了,Order的时候不支持了,所以想转回来,还要保存里面的数据。给她提供了一个步骤:

1.建立一个临时varchar2字段用来保存数据

2.将clob的内容截取后更新到varchar2字段中

update table_wonder set tempcolumn = dbms_lob.substr(clobcolumn,4000);

3.drop掉clob字段

4.将临时varchar2字段改名

alter table table_wonder rename column tempcolumn to column;

 另外rename语句在9.2以上版本支持,在pl/sql developer 7.0版本的command window中不支持,需要使用sqlplus。

列出lob类型不支持的sql语句

 

不支持的语句 不支持的用法例子
SELECT DISTINCT

SELECT DISTINCT clobCol from...

SELECT clause

ORDER BY

SELECT... ORDER BY clobCol

SELECT clause

GROUP BY

SELECT avg(num) FROM...

GROUP BY clobCol

UNION, INTERSECT, MINUS

(Note that UNION ALL works for LOBs.)

SELECT clobCol1 from tab1 UNION SELECT clobCol2 from tab2;

Join queries

SELECT... FROM... WHERE tab1.clobCol = tab2.clobCol

Index columns

CREATE INDEX clobIndx ON tab(clobCol)...

分享到:
评论

相关推荐

    数据库中clob类型转换的问题 数据库中clob类型转换的问题

    然而,需要注意的是,在实际操作中直接通过`ALTER TABLE`命令将CLOB字段转换为VARCHAR2可能会遇到以下问题: #### 问题1:数据丢失风险 由于VARCHAR2的最大长度有限制(Oracle中为4000个字符),因此如果原始CLOB...

    ORACLE中CLOB字段转String类型

    在Oracle数据库中,将CLOB字段转换为字符串类型是常见需求之一。通过使用`DBMS_LOB`包、内置函数如`SUBSTR`以及`TO_CHAR`,可以有效地实现这一目标。此外,还需注意性能优化措施,例如分段读取和合理设计查询逻辑,...

    mybatis 对clob类型转换

    当你需要将一个字符串或者Reader对象插入到CLOB字段时,MyBatis默认可能无法正确处理。此时,你需要自定义一个TypeHandler来处理这种转换。创建一个实现`org.apache.ibatis.type.TypeHandler`接口的类,重写`...

    oracle(blob转换为clob)

    接下来,使用`DBMS_LOB.SUBSTR`按块读取BLOB数据,将其转换为`VARCHAR2`类型,再使用`DBMS_LOB.WRITEAPPEND`将转换后的数据写入到CLOB中。最后返回转换后的CLOB数据。 #### 4. 更新表中的数据 在实际应用中,一旦...

    clob 的读存问题

    当执行SQL查询并获取结果集后,可以通过调用`ResultSet`对象的`getCLOB()`方法来获取CLOB字段的值。获取到CLOB对象后,通常会使用`getCharacterStream()`或`getAsciiStream()`方法来读取其中的数据。 #### 示例代码...

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

    首先,尝试将CLOB字段直接转换为VARCHAR2类型进行查询,如以下语句所示: ```sql select * from table_name where utl_raw.cast_to_varchar2(column) like ‘%oracle%'; ``` 但这种做法会导致错误,因为CLOB字段可能...

    向Oracle数据库插入Clob大段文本解决方法

    在实际应用中,当需要存储的文章、报告或者XML文档等文本信息超过常规VARCHAR2类型的限制时,CLOB便成为首选。 ### 二、向Oracle数据库插入Clob大段文本的方法 #### 方法一:使用OracleParameter和ExecuteNonQuery...

    oracle字段类型转换的处理

    例如,如果你有一个NUMBER类型的字段,想将其转换为VARCHAR2类型,可以使用以下语句: ```sql SELECT CAST(column_name AS VARCHAR2(20)) FROM table_name; ``` 这里,`VARCHAR2(20)`指定了转换后的字符串长度。 2....

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

    - 将CLOB转换为VARCHAR2处理,但可能受限于VARCHAR2的最大长度。 - 先查询不含CLOB字段的记录,然后在应用程序中使用`EXISTS`或`IN`进行进一步筛选。 5. **Java操作CLOB**: - 示例代码展示了如何使用Java的反射...

    将长于4000字符的字符串转化为CLOB类型存入数据库

    相比于VARCHAR2类型的4000字符限制,CLOB提供了更灵活、更强大的文本数据存储能力。 ### 二、转换字符串为CLOB类型的方法 #### 1. **使用Oracle.NET接口** 在C#中操作Oracle数据库通常会用到Oracle.NET接口,...

    informatica Clob handling

    因此,我们不能将CLOB字段的4000字节子串插入到VARCHAR2(4000)类型的字段中,因为实际需求可能需要16000字节的空间,而VARCHAR2的最大长度仅为4000字节。因此,目标字段应该设置为CLOB类型,以便能够容纳看似4000...

    Oracle中CLOB类型文字处理代码

    - 它不同于VARCHAR2,后者限制在4000个字符内,对于超过这个限制的数据,CLOB是理想的选择。 2. 创建CLOB字段: 在创建表时,可以定义一个CLOB字段来存储大文本数据。例如: ```sql CREATE TABLE my_table ( ...

    hibernate使用中与各种数据库字段类型对应类型训练

    本篇将主要围绕Hibernate在与各种数据库字段类型对应的Java类型进行讲解,以及如何在实际项目中进行训练。 一、Hibernate与数据库字段类型的映射 1. 基本类型映射: - Integer -> int, Smallint - Long -> ...

    Oracle数据库字段类型详解

    `VARCHAR2` 还有一个特性,即把空串视为`NULL` 处理,而`VARCHAR` 仍然将其当作空串处理。因此,在大多数情况下,建议使用`VARCHAR2` 来提高兼容性和效率。 **Nchar/Nvarchar2** `NCHAR` 和`NVARCHAR2` 是Unicode...

    oracle变更数据表字段类型

    例如,将一个`VARCHAR2`类型的字段转换为`CLOB`类型,或者反过来。这种情况下,我们需要采取一种既能够保证数据完整性和准确性,又尽可能减少对系统性能影响的方法来实现这一变更。 #### 二、常见的问题与解决方案 ...

    jsp读取大对象CLOB并生成xml文件示例

    例如,我们有一个`documents`表,其中有一个名为`content`的CLOB字段,存储着XML格式的数据。 ```sql CREATE TABLE documents ( id INT PRIMARY KEY, title VARCHAR(255), content CLOB ); ``` 接下来,我们将...

    fckeditor配置和oracle大字段类型处理

    title VARCHAR2(255), content CLOB ); ``` 2. **插入和查询CLOB数据**:由于CLOB数据不能直接通过SQL语句的值部分插入,而是需要使用PL/SQL的`DBMS_LOB`包。以下是一个插入示例: ```sql DECLARE l_content...

    Oracle与DB2数据类型分类对应说明

    但是,Oracle 中的 VARCHAR2(n)类型仅用于存放较小的字符串,因此,在实际应用中,我们需要根据实际情况选择合适的字符串类型。例如,在 DB2/400 中,我们可以使用定长的 CHAR(N)类型与 Oracle 的 VARCHAR2(n)...

Global site tag (gtag.js) - Google Analytics