pb如何传递blob类型的参数调用oracle的数据存储过程。谢谢

banalman 2008-01-10 05:08:45

我的存储过程是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;
...全文
242 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wycowen 2008-11-16
  • 打赏
  • 举报
回复
顶啊,这问题困扰我很久了,急需帮助。
banalman 2008-01-11
  • 打赏
  • 举报
回复
还是不行,好像pb9不支持存储过程传递blob类型的。
v888 2008-01-10
  • 打赏
  • 举报
回复
blob地这样写应该有问题
ls_sql = "execute test("+a+","+string(limage)+")"

没有经过测试,看是否对
v888 2008-01-10
  • 打赏
  • 举报
回复
--修改:
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;
v888 2008-01-10
  • 打赏
  • 举报
回复
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;

------------试试另外种方法
worldly_wind 2008-01-10
  • 打赏
  • 举报
回复
有pb调用存储过程的例子。调用方法如上所述。
banalman 2008-01-10
  • 打赏
  • 举报
回复
updateblob 不行,因为我是和其他系统通信,其他系统提供了存储过程的接口供我们调用。我们不能直接访问表啊。

to “尘世的风”大侠有例子吗?
banalman 2008-01-10
  • 打赏
  • 举报
回复
up
worldly_wind 2008-01-10
  • 打赏
  • 举报
回复
我觉得你可以在pb程序中通过updateblob方式更新该字段。
worldly_wind 2008-01-10
  • 打赏
  • 举报
回复
1、创建新的事务对象例如uo_procedure
2、将该事务对象添加到application properties的sqlca中
3、打开uo_procedure并在local external functions中声明各存储过程
4、程序中调用直接用sqlca.存储过程名(参数,..)即可

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧