gpt4 book ai didi

Oracle - 使用 PL/SQL 更新 BLOB

转载 作者:行者123 更新时间:2023-12-04 03:00:04 26 4
gpt4 key购买 nike

我需要使用 PL/SQL 更新表中预先存在的 BLOB 值。
我正在处理糟糕的表设计,该列应该是 CLOB 并且不会改变。

我要执行的步骤: 1)选择BLOB 2) 将 BLOB 转换为 CLOB 3)修改CLOB 3) 将 CLOB 转换为 BLOB 4) 用新值更新 BLOB 列

第四步我不知道怎么做。我希望 BLOB 可以直接更新,但我发现的唯一示例是将文件读入 blob 列或使用其他编程语言。

最佳答案

我理解你的问题,但我认为必须有另一个问题。

解决方案

只是更新它..

UPDATE myTable SET myBlobColumn = myBlob WHERE myCondition = 1;

完整示例

DECLARE
myVarcharVar VARCHAR2(1000);
myClobVar CLOB;
myBlobVar BLOB;
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE TTEST'; -- ensure out testdata will be correct.
INSERT INTO TTEST (myBlob, myClob, myVarchar) VALUES(utl_raw.cast_to_raw('1111'), '2222', '3333'); -- insert our data

-- Attention: ONLY ONE ROW => NO WHERE-CONDITIONS to simplify the code!

SELECT myVarchar INTO myVarcharVar FROM TTEST;

UPDATE TTEST SET myClob = myVarcharVar;

SELECT myClob INTO myClobVar FROM TTEST;

UPDATE TTest SET myBlob = utl_raw.cast_to_raw(myClobVar);

SELECT myBlob, myClob, myVarchar INTO myBlobVar, myClobVar, myVarcharVar FROM TTest;

dbms_output.put_line('Blob: ' || utl_raw.cast_to_varchar2(myBlobVar));
dbms_output.put_line('Clob: ' || myClobVar);
dbms_output.put_line('Varchar:' || myVarcharVar);
END;

关于Oracle - 使用 PL/SQL 更新 BLOB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50007290/

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