Oracle Insert BLOB

Oracle Insert BLOB来源于:http://arjudba.blogspot.com/2008/06/how-to-insert-blob-dataimage-video-into.htmlHowtoInsertBlobdata(image,video)intooracleBLOBsizeInthispostitisshownhowIcaninsertBlob

大家好,又见面了,我是你们的朋友全栈君。

来源于:

http://arjudba.blogspot.com/2008/06/how-to-insert-blob-dataimage-video-into.html

How to Insert Blobdata(image, video) intooracle BLOB size

In this post it is shown how I can insert Blob data link image video into oracle database and also how I can determine the size of the BLOB data from oracle.

1)Create Directory Where BLOB resides.


create or replace directory temp as ‘/oradata2’;

2)Grant read permission to the user who work with this directory.


grant read on directory temp to arju;

3)Create the
Table which holds lob object.

— the storage table for the image file

CREATE TABLE pdm (

dname VARCHAR2(30), — directory name

sname VARCHAR2(30), — subdirectory name

fname VARCHAR2(30), — file name

iblob BLOB); — image file

4)Create the procedure that insert BLOB objects.



— create the procedure to load the file
CREATE OR REPLACE PROCEDURE load_file (
pdname VARCHAR2,
psname VARCHAR2,
pfname VARCHAR2) IS

src_file BFILE;
dst_file BLOB;
lgh_file BINARY_INTEGER;
BEGIN
src_file := bfilename(‘TEMP’, pfname);

— insert a NULL record to lock
INSERT INTO pdm
(dname, sname, fname, iblob)
VALUES
(pdname, psname, pfname, EMPTY_BLOB())
RETURNING iblob INTO dst_file;

— lock record
SELECT iblob
INTO dst_file
FROM pdm
WHERE dname = pdname
AND sname = psname
AND fname = pfname
FOR UPDATE;

— open the file
dbms_lob.fileopen(src_file, dbms_lob.file_readonly);

— determine length
lgh_file := dbms_lob.getlength(src_file);

— read the file
dbms_lob.loadfromfile(dst_file, src_file, lgh_file);

— update the blob field
UPDATE pdm
SET iblob = dst_file
WHERE dname = pdname
AND sname = psname
AND fname = pfname;

— close file
dbms_lob.fileclose(src_file);
END load_file;
/

5)Execute the Procedure.



SQL> exec load_file(‘TEMP’,’This is Image’,’tritha7.png’);


PL/SQL procedure successfully completed.

6) From OS see the BLOB size.



SQL> !ls -l /oradata2/tritha7.png


-rwxr-xr-x 1 oracle oinstall 21150 Jun 9 01:55 /oradata2/tritha7.png

7)From Oracle Determine Blob size.


1 declare
2 a blob;
3 begin
4 select iblob into a from pdm;
5 dbms_output.put_line(dbms_lob.getlength(a));
6* end;


SQL> /

PL/SQL procedure successfully completed.



SQL> set serverout on


SQL> /

21150

 

最近遇到好多需要存储Oracle BLOB 需求。 众所周知,BLOB 是用来存储图片、PDF、等大数据对象的。由于公司的需要我们所有的数据库操作都要使用存储过程来操作。所以首先先贴上一个BLOB存储的存储过程供大家参考:

Sql代码

  1. create or replace  
  2. procedure NDSSP_backup_fund (fund_id_in in varchar2 ,selector_in in varchar2,   
  3. time_in in timestamp,blob_in in BLOB)    
  4.   is  
  5.     key number;   
  6.     blob_tmp blob;   
  7.   begin  
  8.     delete from fund_backup bf where bf.selector = selector_in and bf.fund_id = fund_id_in;   
  9.     select fund_backup_seq.nextval into key from dual;   
  10.     insert into fund_backup values(key,selector_in,fund_id_in,empty_blob(),time_in);   
  11.     select content into  blob_tmp from fund_backup where id = key for update;   
  12.     dbms_lob.copy(blob_tmp, blob_in, dbms_lob.getLength(blob_in));   
  13.   end NDSSP_backup_fund;  
大家只要关注BLOB存储的部分就好了,其他的部分都可以忽略。正如大家所看到的,我们想要调用这个存储过程,必须要传递一个BLOB 对象。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160961.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月17日 下午11:00
下一篇 2022年7月17日 下午11:00


相关推荐

  • oracle 修改表名

    oracle 修改表名ALTER TABLE AA RENAME TO BB;

    2022年5月13日
    40
  • 主板上的minipcie_移远4g模组

    主板上的minipcie_移远4g模组MiniPCIE封装4G模组价值仍在2019年,中国正式进入5G商用元年。4G网络不管是速度、还是信号上都再无优势,那么4G网络会被淘汰吗?现在物联网应用最大的承载部分是在2G/3G网络,而现在的NB-IOT网络,不适用在高速率,低延时通信场景中。以前对速率,时延有一定要求的物联网设备将会向4G的LTE网络迁移,4G网络已经足够承载相关设备。也就是说,很长一段时间内就是作为物联网的承载网络…

    2025年10月3日
    5
  • 好用的vue富文本编辑器记录[通俗易懂]

    好用的vue富文本编辑器记录[通俗易懂]vue-quill-editorhttps://github.com/surmon-china/vue-quill-editorhttps://www.npmjs.com/package/vue-quill-editorhttps://blog.csdn.net/nickroprak/article/details/86645519(自定义图片上传)*默认上传图片为base64编吗…

    2022年10月14日
    5
  • 论文文献阅读笔记_IN characteristic of learning

    论文文献阅读笔记_IN characteristic of learningMGN的核心思想是利用globalfeature+finegrainfeature做特征融合然后分类,做part-based的branch取得很简单就是等分,但是为了让模型能收敛,用了多个patch的loss混合训练。看文章结果很不错,只用了给的数据集里面的trainset就能达到90+。github上只有pytorch版本,准备这段时间自己搞一个纯TF版本出来。Motivatio…

    2026年4月15日
    5
  • 计算机最炫民族风教案,辽师大版信息技术四下第一单元第6课《最炫民族风》教案1.doc…[通俗易懂]

    计算机最炫民族风教案,辽师大版信息技术四下第一单元第6课《最炫民族风》教案1.doc…[通俗易懂]辽师大版信息技术四下第一单元第6课《最炫民族风》教案1.doc文档编号:536835文档页数:2上传时间:2019-01-13文档级别:文档类型:doc文档大小:35.00KB第第6课课最炫民族风最炫民族风教学目标设计知识与技能目标通过学习使学生掌握word里“页面设置”里“页边距”和“纸张”的使用和操作方法。在掌握以前学习有关知识的基础上,能够较灵活的应用该设置对页面进行调…

    2026年2月15日
    6
  • python aic准则_使用AIC进行变量选择并评估多元回归中的标准

    python aic准则_使用AIC进行变量选择并评估多元回归中的标准#MultipleRegressionVariableSelectiondefmr(selection=False):importosos.chdir(r’C:\Users\Path’)importpandasaspdh=pd.read_csv(‘Dataset.csv’,index_col=0)#print(h.head(0))#dataset’svariablenamesyva…

    2022年5月23日
    64

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号