gpt4 book ai didi

sql - 如何从物理文件更新 CLOB 列?

转载 作者:行者123 更新时间:2023-12-04 14:32:15 29 4
gpt4 key购买 nike

我在一个包含大量 XML 数据的表中有一个 CLOB 列。我需要为表格的一行更新此列的值。我该怎么做?

我试过谷歌搜索,但这种明显简单的东西在任何地方都无法以简单的语言提供。有人可以建议吗?

如果我使用正常的更新查询语法并将巨大的 xml 内容粘贴到单引号内(xml 内容中的单引号替换为 2 个单引号),那么 sql 开发人员只会禁用执行查询按钮。

update tableName t 
set t.clobField = 'How to specify physical file data'
where t.anotherField='value';

最佳答案

您需要创建一个函数,将文件中的数据读取到 CLOB 数据类型的变量中,并将其作为结果返回。

试试这个工作示例:

create table tclob (id number, filename varchar2 (64), doc clob)
/
insert into tclob values (1, 'test.xml', empty_clob ());
commit;

create or replace function clobLoader (filename varchar2) return clob is
bf bfile := bfilename ('TEMPFILES', filename);
cl clob;
begin
if dbms_lob.fileexists (bf) = 1 then
dbms_lob.createtemporary (cl, true);
dbms_lob.fileopen (bf, dbms_lob.file_readonly);
dbms_lob.loadfromfile (cl, bf, dbms_lob.getlength (bf));
dbms_lob.fileclose (bf);
else cl := empty_clob ();
end if;
return cl;
end;
/

用法:

update tclob t 
set t.doc = clobLoader (t.filename)
where t.id = 1;

1 row updated.

关于sql - 如何从物理文件更新 CLOB 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31260154/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com