1.我在C#里用update tableName set image=byte[](类型) where imagename='0001'
更新不了. 为什么??更新有什么条件吗?
2.我又用存储过程
create or replace procedure updateclob
(
v_tablename in varchar2, --表名
v_imagename in varchar2, --图片名(主键)
v_image in blob, --图片
)
is
lobloc blob;
query_str varchar2(1000);
begin
query_str :='select image from '||v_tablename||' where imagename= :id ';
EXECUTE IMMEDIATE query_str INTO lobloc USING v_imagename;
dbms_lob.write(lobloc,DBMS_lob.Getlength(lobloc),1,lobloc);
commit;
end; 错误提示:
ORA-06502:PL/SQL:发生数值错误
ORA-06512:""
ORA-06512:13行 请指点!
更新不了. 为什么??更新有什么条件吗?
2.我又用存储过程
create or replace procedure updateclob
(
v_tablename in varchar2, --表名
v_imagename in varchar2, --图片名(主键)
v_image in blob, --图片
)
is
lobloc blob;
query_str varchar2(1000);
begin
query_str :='select image from '||v_tablename||' where imagename= :id ';
EXECUTE IMMEDIATE query_str INTO lobloc USING v_imagename;
dbms_lob.write(lobloc,DBMS_lob.Getlength(lobloc),1,lobloc);
commit;
end; 错误提示:
ORA-06502:PL/SQL:发生数值错误
ORA-06512:""
ORA-06512:13行 请指点!
query_str :='select image from '||v_tablename||' where imagename= :id for update';
EXECUTE IMMEDIATE query_str INTO lobloc USING v_imagename;
dbms_lob.write(lobloc,DBMS_lob.Getlength(v_image),1,v_image);
2 v_tablename in varchar2, --表名
3 v_imagename in varchar2, --图片名(主键)
4 v_image in blob --图片
5 )
6 is
7 lobloc blob;
8 query_str varchar2(1000);
9 begin
10 query_str:='select image from '||v_tablename;
11 query_str:=query_str||' where imagename= :id for update ';
12 EXECUTE IMMEDIATE query_str INTO lobloc USING v_imagename;
13 dbms_lob.copy(lobloc,v_image,DBMS_lob.Getlength(v_image),1,1); -- 用拷贝吧
14 commit;
15 end;
16 /过程已创建。
How to: Read and Write BLOB Data to a Database Table Through an Anonymous PL/SQL Block