我的存储过程是oracle 9i下面的例如下面:
create or replace procedure test(
psjgbh in varchar2,image in blob,pspznm out varchar2) is
begin
pspznm :='90';
update eps set eps.image1 = image;
-- dbms_lob.getlength(ZJWJ1);
return ;
end test;
请问再pb中如何调用?
我用下面的方式提示错误:
string a="dddd",errtext="dddd";
blob limage;
DECLARE proc1 PROCEDURE FOR test(:a,:limage);
EXECUTE proc1;
------解决方案--------------------
1、创建新的事务对象例如uo_procedure
2、将该事务对象添加到application properties的sqlca中
3、打开uo_procedure并在local external functions中声明各存储过程
4、程序中调用直接用sqlca.存储过程名(参数,..)即可
------解决方案--------------------
我觉得你可以在pb程序中通过updateblob方式更新该字段。
------解决方案--------------------
有pb调用存储过程的例子。调用方法如上所述。
------解决方案--------------------
string ls_sql,ls_rtn
string a="dddd",errtext="dddd";
blob limage;
limage = blog("testtest")
DECLARE l_cursor DYNAMIC CURSOR FOR SQLSA;
ls_sql = "execute test(:a,:limage)"
PREPARE SQLSA FROM :ls_sql;
OPEN DYNAMIC l_cursor ;
FETCH l_cursor INTO :ls_rtn;
CLOSE l_cursor;
------------试试另外种方法
------解决方案--------------------
--修改:
string ls_sql,ls_rtn
string a="dddd",errtext="dddd";
blob limage;
limage = blob("testtest")
DECLARE l_cursor DYNAMIC CURSOR FOR SQLSA;
ls_sql = "execute test("+a+","+limage+")"
PREPARE SQLSA FROM :ls_sql;
OPEN DYNAMIC l_cursor ;
FETCH l_cursor INTO :ls_rtn;
CLOSE l_cursor;
------解决方案--------------------
blob地这样写应该有问题
ls_sql = "execute test("+a+","+string(limage)+")"
没有经过测试,看是否对
代码迷推荐解决方案:oracle存储过程,http://www.daimami.com/oracle-develop/177537.html