oracle CLOB/BLOB to varchar2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle CLOB/BLOB to varchar2相关的知识,希望对你有一定的参考价值。
TABLE_NAME table_a
COLUMN_NAME column_a
DATA_TYPE BOLB or CLOB
问题如题
不是要显示的类型,是要改变字段(column_a)的类型(CLOB/BLOB to varchar2),请根据上面给的表名和字段写个SQL语句来看看,谢谢!
我的做法是这样的,适用于表里没数据。有没有更好的方法,求解!
ALTER TABLE table_a drop column column_a ;
alter table table_a add (column_a varchar2(500));
BLOB类型的呢?
追答空表就删了再建,有个关键字modify,但是不能针对blob字段;
blob存的是二进制的,不能转换为varchar,你试想一个图片你怎么转换为字符?
(是数据库组人的让把大对象都转换成varchar2)!!
我想在问下若不是空表,用modify转换类型可以吗?还有modify能转换大对象类型吗?我试过,不好使啊,是我用法不对吗?求解!
我用的sql:ALTER TABLE table_a MODIFY column_a varchar2(500);
当然不可以,不是空表的话,不能做任何字段类型变更,这跟大字段没有关系。修改一列的字段类型的前提就是这个字段的值全部为空。
追问表现在是空的,执行sql:ALTER TABLE table_a MODIFY column_a varchar2(500);
对大对象类型也不行啊。
帮我理解Oracle中CLOB和BLOB的区别
【中文标题】帮我理解Oracle中CLOB和BLOB的区别【英文标题】:Help me understand the difference between CLOBs and BLOBs in Oracle 【发布时间】:2010-11-04 07:43:00 【问题描述】:这主要只是一个“检查我的理解”类型的问题。以下是我对 CLOB 和 BLOB 在 Oracle 中工作的理解:
CLOB 用于 XML、JSON 等文本。您不应假设数据库会将其存储为何种编码(至少在应用程序中),因为它将转换为数据库配置使用的任何编码。李> BLOB 用于二进制数据。您可以放心,它们将以您发送它们的方式存储,并且您将使用与它们发送时完全相同的数据取回它们。换句话说,假设我有一些二进制数据(在本例中是一个腌制的 Python 对象)。我需要保证,当我发送它时,它将完全按照我发送它的方式存储,并且当我取回它时它会完全一样。 BLOB 是我想要的,对吗?
为此使用 CLOB 真的可行吗?还是字符编码会引起足够多的不值得的问题?
【问题讨论】:
除非您正在开发第三方实用程序,否则您不应尝试猜测数据库将如何存储其中任何一个。应该只信任尺寸指南。 【参考方案1】:CLOB
对编码和排序规则敏感,BLOB
不是。
当您使用CL8WIN1251
写入CLOB
时,您会写入0xC0
(这是西里尔字母А)。
当您使用AL16UTF16
读回数据时,您会返回0x0410
,这是这封信的UTF16
表示。
如果您正在阅读 BLOB
,您将得到相同的 0xC0
回复。
【讨论】:
【参考方案2】:你的理解是正确的。既然您提到了 Python,请考虑一下 Python 3 中字符串和字节之间的区别:CLOB 和 BLOB 非常相似,还有一个额外的问题是 CLOB 的编码不受您的应用程序的控制。
【讨论】:
以上是关于oracle CLOB/BLOB to varchar2的主要内容,如果未能解决你的问题,请参考以下文章