DB2中如何将一个clob类型的字段改为varchar类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2中如何将一个clob类型的字段改为varchar类型相关的知识,希望对你有一定的参考价值。
用alter table set字段类型,报错为指定的属性与现有内容不匹配。注:clob类型对应字段值为空
补充:已经用先删除该字段,再添加的方法解决。
能否不删除直接修改呢?
1、新增一列varchar2类型,varchar2类型最大4000:alter table test add(c varchar2(4000));
2、将clob列数据更新到新增列:update test set c=clob_col;
3、删除clob列:alter table test drop column clob_col;
4、将新增列名更改回原来列名:alter table test rename column c to clob_col; 参考技术A 你可以直接打开"控制中心"选中所要的表右击更改,会出来表结构,你可以进行更改的! 参考技术B 可以,通过ddl建表,建立另外一张 表,然后用 dbput直接转进去就可以了
在 Oracle DB 的 CLOB 字段中存储文件
【中文标题】在 Oracle DB 的 CLOB 字段中存储文件【英文标题】:Storing Files in Oracle DB's CLOB field 【发布时间】:2011-08-24 03:06:46 【问题描述】:我的 oracle 表中有一个具有 CLOB 数据类型的列。 如何在此列中存储 .txt 文件以及如何检索相同的文件?
下面是表定义
fileID Number
logFile CLOB
提前致谢
【问题讨论】:
您还使用什么和/或 API 来插入和检索数据?您在寻找 PL/SQL 解决方案吗? SQL*加载器? JDBC?还有什么? 我正在寻找 PL/SQL 解决方案 好的。您尝试加载的文件存在于数据库服务器上,对吧? 【参考方案1】:在 PL/SQL 中将文件加载到 CLOB 中非常简单——您只需要使用 DBMS_LOB.LoadCLOBFromFile procedure
CREATE DIRECTORY file_dir
AS <<path on database server file system>>;
GRANT read, write
ON file_dir
TO your_user_name;
DECLARE
l_src_file bfile := BFileName( 'FILE_DIR', <<name of file>> );
l_dest_lob clob;
l_dest_offset integer := 1;
l_src_offset integer := 1;
l_lang_context number := dbms_lob.default_lang_ctx;
l_warning number;
BEGIN
dbms_lob.open( l_src_file, dbms_lob.lob_readonly );
INSERT INTO some_table( fileID, logFile )
VALUES( fileIDSeq.nextval, empty_clob() )
RETURNING logFile
INTO l_dest_lob;
dbms_lob.LoadCLOBFromFile(
dest_lob => l_dest_lob,
src_bfile => l_src_file,
amount => dbms_lob.getLength( l_src_file ),
dest_offset => l_dest_offset,
src_offset => l_src_offset,
bfile_csid => dbms_lob.default_csid,
lang_context => l_lang_context,
warning => l_warning );
dbms_lob.close( l_src_file );
END;
/
再次将文件从 CLOB 写入文件系统有点复杂。我会使用类似 Tom Kyte 的 clob_to_file procedure
【讨论】:
你不应该只说这个而不解释如何派生它“>”绝对不是“很容易”。 @PhilipRego - 我不确定“如何推导出它”是什么意思。<<path on database server file system>>
可以是您想要的任何路径,没有您需要派生的“神奇”路径。它是您要加载的文件在服务器文件系统上的任何位置。以上是关于DB2中如何将一个clob类型的字段改为varchar类型的主要内容,如果未能解决你的问题,请参考以下文章
oracle 如何将字段类型varchar 改为blob 更改提示数据类型的变更无效