我需要将JSON数据插入Oracle DB表的BLOB列,还需要从表中选择BLOB列的值?
这是我对INSERT的查询:
INSERT INTO table_Name值('Test','test1',UTL_RAW.cast_to_raw({“ JSON数据”}))
如何选择?另外,当插入大型JSON对象时,会引发错误:“ PL / SQL:数字或值错误:原始变量长度太长”
答案 0 :(得分:0)
Try this:
create table demo
( id int primary key,
theBlob blob
);
INSERT INTO demo (id) values (1);
update demo set theBlob = utl_raw.cast_to_raw('Hello World') where id = 1;
commit;
select * from demo where id = 1;
select utl_raw.cast_to_varchar2(dbms_lob.substr(theBlob))
from demo
where ID = '1';
答案 1 :(得分:0)
该cast_to_raw使用VARCHAR2作为参数,并且您的字符串太大。您需要打开BLOB并将其分段编写。全部都在DBMS_LOB软件包中。