如何插入BLOB值

时间:2018-08-04 00:39:11

标签: sql oracle12c

我有下表FILES:

create table files(
id number,
file_name varchar2(25),
file_data blob);

我希望能够在此表中存储有关计算机上二进制文件的数据。但是,将计算机上的文件转换为十六进制时,字符串太长而无法插入,因为Oracle不适用于长度大于4,000的字符串文字。如何将记录插入此表?

1 个答案:

答案 0 :(得分:1)

通常您要做的是:

  • 您在应用程序中创建一个空的“ Blob”对象。
  • 您将空的Blob作为该行的列之一插入数据库。
  • 然后,在同一事务中,从刚插入的Blob对象中检索“输出流”。
  • 您将数据发送到输出流,直到所有字节发送完毕。
  • 您关闭输出流。
  • 您提交交易。

将整个文件加载到内存中,然后将其插入数据库中是一种非常糟糕的做法。改用流式传输。