pb调用返回值为cursor的存储过程,高手~

pb调用返回值为cursor的存储过程,求助高手~!
RT,PB该如何调用返回值为游标的的存储过程。我调用的时候,用了如下语法:
                 do while sqlca.sqlcode = 0
FETCH deaction INTO :str1;
ls_deaction = ls_deaction+trim(str1)
loop 
但是同样的内容,会提取好几遍。就比如,我原本存的是12,结果提取后就变成121212.请问正确的调用方法是那种?
------解决方案--------------------
如果你的 dowhile loop 循环之前有其他的 sql 执行,那么你贴出来的代码,肯定会多出一个12出来。

我假设你的 do while 语句之前有一段 sql 语句执行成功,那么 sqlca.sqlcode 已经被赋值为0 了

你这样试试:

ls_deaction = ''
OPEN deaction ;
FETCH deaction INTO :str1;
do while sqlca.sqlcode = 0
   ls_deaction = ls_deaction+trim(str1)
   FETCH deaction INTO :str1;
loop 
CLOSE deaction;