oracle批处理导入到字段代码示例
所以你选择了一个临时表来暂时保存的照片从文件系统读取,并使用dbms_lob方法来处理它。
第一步:创建一个数据库可以访问的目录(注意:这个目录是数据库服务器上的目录,而不是客户机上的目录)。
创建目录
创建或替换目录图片目录
as'e:照片;
第二步:将图片文件放在新建目录下,而不是放在新文件夹中,并将其放在这个根目录中。
第三步:根据我们的具体需要,编写存储过程。在我这样做之前,我在网上搜索了很多东西,但基本上我只是在谈论它,没有找到一个完整的。在这里,我们张贴我们的项目的源代码,以学习和沟通与您联系。
创建或替换程序pro_插入图片(在VARCHAR2 v_表名)是
p_filename VARCHAR2(50);-照片名称,动态拼接
p_证书编号VARCHAR2(50);
p_名字VARCHAR2(50);这张照片的名字是由剪接的姓名+身份证号获得的,因为基本的测试数据不提供真实身份证号码,然后选择使用移动电话而不是。
p_查询SQL VARCHAR2(500);
p_更新SQL VARCHAR2(5000);
p_lob BLOB;
p_file BFILE;
型p_ref_cursor是游标的使用;——动态游标变量类型定义
p_cursor p_ref_cursor;-定义动态游标变量,因为全表的照片插在一个时间,所以你选择了一个游标来处理它
型p_row_record记录(
文件编号VARCHAR2(50),
名称VARCHAR2(50));
c_row p_row_record;
v_err VARCHAR2(300);
开始
p_更新:sql'update =v_集| | | |表的姓名、身份证号码、手机号码,证件号码为空;
-使用手机号码,而不是使用空数据的数据
立即执行p_更新SQL;
承诺;
p_查询SQL:= 'select证书编号,名称从| | v_表名| |
证书号码不为零,照片按ID号为null;
对于p_查询SQL开放p_cursor;
环
开始
取p_cursor
为c_row;
EXIT WHEN P_CURSOR%NOTFOUND;
-获取文档的数量和名称,删除脏数据,如空格,然后将其拼接到文件名中。
p_证书编号:= c_row。证书编号;
P_ Name: = C_ROW. 名称;
选择替换(p_ ID号码,' ',' ')从双成p_ ID号;
选择substr(p_证书编号,1, 11)从双成p_ ID号;
选择替换(p_名字,' ',' ')从双成p_名称;
p_filename:= p_ p_.webp| | | |名称身份证号码;
选择替换(p_filename,' ',' ')从双成p_filename;
-下面是插入图片的核心代码
插入ta_照片总台_temp
(身份证号码,姓名,照片)
价值观
(p_证书编号,p_名字,empty_blob()返回到p_lob照片);
-在指定目录下获取文件
p_file:= bfilename('picture目录,p_filename);
-以只读方式打开文件
dbms_lob.fileopen(p_file,dbms_lob。file_readonly);
转移对象
dbms_lob.loadfromfile(p_lob,p_file,dbms_lob.getlength(p_file));
-关闭原始文件
dbms_lob.fileclose(p_file);
承诺;
-通过更新语句插入图片到目标表中
P_ update: SQL ='UPDATE '|| V_ table name ||
一组照片= A(选择ta_照片总表_temp B照片)
一个身份证号码身份证号码和姓名= B = B的名字和rownum = 1)
在存在(选择1 ta_照片总台_temp B,A = B的ID号文件编号和A.的名字);
立即执行p_更新SQL;
承诺;
例外
-处理异常,它可以跳过异常并在异常发生时继续运行。正常的数据仍然可以被插入并记录异常信息以促进异常处理。这是因为第一次你写的过程是错误的,不能插入图片继续,然后进行优化。
当别人然后
回降;
v_err:= substr(sqlerrm,1, 150)| |的照片:p_filename| |;
-定义一个异常信息记录表是个好习惯。
插入ta_程序运行异常记录
价值观
(sq_异常序列。nextval,'pro_插入图片,v_err,SYSDATE);
承诺;
结束;
结束循环;
近p_cursor;
承诺;
删除照片_temp ta_总清单;
承诺;
最后pro_插入图片;
总结
然后在测试和运行中基本上没有问题,但是图像的大小会影响实际插入时间。这次优化没有好的对策。
以上就是本文关于Oracle批量导入图片的BLOB字段的代码实例,希望对你有所帮助,感兴趣的朋友可以参考:分析阶段,Oracle数据库的SQL优化技术在长度、启动Oracle分析LENGTHB,substr,substrb功能使用,有什么问题可以留言,萧边会及时回复你。也希望更多的朋友支持的网站!