将JSON数据插入到Oracle BLOB列中,然后从BLOB列中选择?

时间:2018-09-26 12:50:49

标签: c# oracle

我需要将JSON数据插入Oracle DB表的BLOB列,还需要从表中选择BLOB列的值?

这是我对INSERT的查询:

INSERT INTO table_Name值('Test','test1',UTL_RAW.cast_to_raw({“ JSON数据”}))

如何选择?另外,当插入大型JSON对象时,会引发错误:“ PL / SQL:数字或值错误:原始变量长度太长”

2 个答案:

答案 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软件包中。