45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:如何在c#程序中调用Oracle存储过程上传二进制文件?

如何在c#程序中调用Oracle存储过程上传二进制文件?

2016-08-30 17:43:35 来源:www.45fan.com 【

如何在c#程序中调用Oracle存储过程上传二进制文件?

最新做一个新的项目,用到了微软的Enterprise Library库,该库支持SQL和Oracle的统一访问,因此不能用SqlConnectionClient或OracleConnectionClient中自定义的数据类型,只能使用通用的DbType,但是其中的二进制内容只能容纳8K,这对于上传文件或者图片来说,肯定是不够用的,通过仔细研究Oracle的存储过程,自己写了一个无限上传二进制内容的存储过程:

如何在c#程序中调用Oracle存储过程上传二进制文件?createorreplaceprocedureP_UpdatePhoto(v_imginblob,v_eraseFlaginvarchar2,v_employee_idinvarchar2)is
如何在c#程序中调用Oracle存储过程上传二进制文件?v_locator_varblob;
如何在c#程序中调用Oracle存储过程上传二进制文件?v_amount
integer:=0;
如何在c#程序中调用Oracle存储过程上传二进制文件?
begin
如何在c#程序中调用Oracle存储过程上传二进制文件?selectPHOTOintov_locator_varfromemployeeswhereemployee_id=v_employee_idFORUPDATE;
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?
IF(v_locator_varISNULL)THEN
如何在c#程序中调用Oracle存储过程上传二进制文件?UPDATEEMPLOYEESSETPHOTO=EMPTY_BLOB()WHEREEMPLOYEE_ID=v_employee_id;
如何在c#程序中调用Oracle存储过程上传二进制文件?
selectPHOTOintov_locator_varfromemployeeswhereemployee_id=v_employee_idFORUPDATE;
如何在c#程序中调用Oracle存储过程上传二进制文件?
ENDIF;
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?
if(v_locator_varisnotnullandv_eraseFlag='1')then
如何在c#程序中调用Oracle存储过程上传二进制文件?v_amount:=DBMS_LOB.getlength(v_locator_var);
如何在c#程序中调用Oracle存储过程上传二进制文件?
IF(v_amount!=0)THEN
如何在c#程序中调用Oracle存储过程上传二进制文件?DBMS_LOB.erase(v_locator_var,v_amount,1);
如何在c#程序中调用Oracle存储过程上传二进制文件?DBMS_LOB.trim(v_locator_var,
0);
如何在c#程序中调用Oracle存储过程上传二进制文件?
ENDIF;
如何在c#程序中调用Oracle存储过程上传二进制文件?
endif;
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?DBMS_LOB.append(v_locator_var,v_img);
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?
commit;
如何在c#程序中调用Oracle存储过程上传二进制文件?
endP_UpdatePhoto;
如何在c#程序中调用Oracle存储过程上传二进制文件?

然后在程序中调用就简单了,封装一个函数

注:数据访问接口需要Enterprise Library的支持

如何在c#程序中调用Oracle存储过程上传二进制文件?如何在c#程序中调用Oracle存储过程上传二进制文件?///<summary>
如何在c#程序中调用Oracle存储过程上传二进制文件?///上传二进制文件
如何在c#程序中调用Oracle存储过程上传二进制文件?
///</summary>
如何在c#程序中调用Oracle存储过程上传二进制文件?///<paramname="empId">员工工号</param>
如何在c#程序中调用Oracle存储过程上传二进制文件?///<paramname="fullName">二进制文件的本地全路径</param>

如何在c#程序中调用Oracle存储过程上传二进制文件?publicvoidUploadPhoto(stringempId,stringfullName)
如何在c#程序中调用Oracle存储过程上传二进制文件?如何在c#程序中调用Oracle存储过程上传二进制文件?
{
如何在c#程序中调用Oracle存储过程上传二进制文件?
if(empId.Trim().Length==0||!File.Exists(fullName))
如何在c#程序中调用Oracle存储过程上传二进制文件?
thrownewArgumentException("员工工号为空或者指定的图片文件不存在");
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?
constintIMG_SIZE=7900;
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?
try
如何在c#程序中调用Oracle存储过程上传二进制文件?如何在c#程序中调用Oracle存储过程上传二进制文件?{
如何在c#程序中调用Oracle存储过程上传二进制文件?System.Collections.ArrayListarrParameters
=newSystem.Collections.ArrayList();
如何在c#程序中调用Oracle存储过程上传二进制文件?FileStreamF_Stream
=newFileStream(fullName,FileMode.Open,FileAccess.Read);
如何在c#程序中调用Oracle存储过程上传二进制文件?Byte[]ImageData
=newbyte[F_Stream.Length];
如何在c#程序中调用Oracle存储过程上传二进制文件?F_Stream.Read(ImageData,
0,(int)F_Stream.Length);
如何在c#程序中调用Oracle存储过程上传二进制文件?F_Stream.Position
=0;
如何在c#程序中调用Oracle存储过程上传二进制文件?
intsize=ImageData.Length%IMG_SIZE==0?ImageData.Length/IMG_SIZE:ImageData.Length/IMG_SIZE+1;
如何在c#程序中调用Oracle存储过程上传二进制文件?CCBPServices.Parameterprm_eraseFlag
=null,prm_employee_id=null,prm_photo=null;
如何在c#程序中调用Oracle存储过程上传二进制文件?
stringstrErr=string.Empty;
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?
try
如何在c#程序中调用Oracle存储过程上传二进制文件?如何在c#程序中调用Oracle存储过程上传二进制文件?{
如何在c#程序中调用Oracle存储过程上传二进制文件?
for(inti=0;i<size;i++)
如何在c#程序中调用Oracle存储过程上传二进制文件?如何在c#程序中调用Oracle存储过程上传二进制文件?
{
如何在c#程序中调用Oracle存储过程上传二进制文件?arrParameters.Clear();
如何在c#程序中调用Oracle存储过程上传二进制文件?prm_eraseFlag
=newCCBPServices.Parameter(true,"v_eraseFlag",System.Data.DbType.String,1);
如何在c#程序中调用Oracle存储过程上传二进制文件?prm_employee_id
=newCCBPServices.Parameter(true,"v_employee_id",System.Data.DbType.String,10);
如何在c#程序中调用Oracle存储过程上传二进制文件?prm_employee_id.realValue
=empId;
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?
if(i==0)
如何在c#程序中调用Oracle存储过程上传二进制文件?prm_eraseFlag.realValue
="1";
如何在c#程序中调用Oracle存储过程上传二进制文件?
else
如何在c#程序中调用Oracle存储过程上传二进制文件?prm_eraseFlag.realValue="0";
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?Byte[]b
=null;
如何在c#程序中调用Oracle存储过程上传二进制文件?
if(i==size-1)
如何在c#程序中调用Oracle存储过程上传二进制文件?b
=newByte[ImageData.Length-i*IMG_SIZE];
如何在c#程序中调用Oracle存储过程上传二进制文件?
else
如何在c#程序中调用Oracle存储过程上传二进制文件?b=newByte[IMG_SIZE];
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?F_Stream.Read(b,
0,b.Length);
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?prm_photo
=newCCBPServices.Parameter(true,"v_img",System.Data.DbType.Binary,b.Length);
如何在c#程序中调用Oracle存储过程上传二进制文件?prm_photo.realValue
=b;
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?
//prm_photo.realValue=b;
如何在c#程序中调用Oracle存储过程上传二进制文件?arrParameters.Add(prm_photo);
如何在c#程序中调用Oracle存储过程上传二进制文件?arrParameters.Add(prm_eraseFlag);
如何在c#程序中调用Oracle存储过程上传二进制文件?arrParameters.Add(prm_employee_id);
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?Queryquery
=newQuery(CommandType.StoredProcedure,"P_UpdatePhoto",arrParameters,string.Empty);
如何在c#程序中调用Oracle存储过程上传二进制文件?
ExcecuteStoredProc(refquery,refstrErr);
如何在c#程序中调用Oracle存储过程上传二进制文件?}

如何在c#程序中调用Oracle存储过程上传二进制文件?}

如何在c#程序中调用Oracle存储过程上传二进制文件?catch
如何在c#程序中调用Oracle存储过程上传二进制文件?如何在c#程序中调用Oracle存储过程上传二进制文件?{}
如何在c#程序中调用Oracle存储过程上传二进制文件?
如何在c#程序中调用Oracle存储过程上传二进制文件?F_Stream.Close();
如何在c#程序中调用Oracle存储过程上传二进制文件?}

如何在c#程序中调用Oracle存储过程上传二进制文件?catch(Exceptionex)
如何在c#程序中调用Oracle存储过程上传二进制文件?如何在c#程序中调用Oracle存储过程上传二进制文件?
{
如何在c#程序中调用Oracle存储过程上传二进制文件?
throwex;
如何在c#程序中调用Oracle存储过程上传二进制文件?}

如何在c#程序中调用Oracle存储过程上传二进制文件?}
 

本文地址:http://www.45fan.com/a/question/69971.html
Tags: oracle 程序 存储
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部