多行的动态sql,怎么返回值啊?

unm 2010-07-04 11:03:52
动态sql如下
declare rtndata nvarchar2(2000);mKeyID NUMBER;
begin
insert into t_vehicle_kind (id,code,name,org_id) values (S_vehicle_kind.NEXTVAL,'dd@g.com','singletab','0') returning id into mKeyID;
rtndata:=rtndata||',{comp403:'||mKeyID||'}';
insert into t_vehicle_kind (id,code,name,org_id) values (S_vehicle_kind.NEXTVAL,'dd@g.com','singletab','0') returning id into mKeyID;
rtndata:=rtndata||',{comp419:'||mKeyID||'}';
---- 怎么返回这个rtndata数据?
end;


也就是如何返回到这个上面,dsql就是上面的动态sql语句
EXECUTE IMMEDIATE dsql into r_data;
如何返回给r_data??
...全文
181 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
buyaoxiugaile 2011-10-18
看过,学习一下
  • 打赏
  • 举报
回复
unm 2010-07-08
各位对一个事物中的多个sql是一次执行的?还是在java端一次一次的执行?
  • 打赏
  • 举报
回复
bbshutie 2010-07-05
不懂
帮顶
  • 打赏
  • 举报
回复
unm 2010-07-05
也就是,有多个insert语句,insert后返回刚插入的值

这些insert语句是动态sql

所以,需要EXECUTE IMMEDIATE 来执行

但是,动态sql里面在执行时得到的seq我怎么返回到EXECUTE IMMEDIATE 这个层面呢?
也就是EXECUTE IMMEDIATE 里面执行后返回的字串在EXECUTE IMMEDIATE 这个层面取得

额,不行就没法了
  • 打赏
  • 举报
回复
xdy3008 2010-07-05
........... 没看明白。
  • 打赏
  • 举报
回复
dingjun123 2010-07-04
传进去拼条件,比如你传入'a,b,c'要拼为where ... in ('a','b','c')??考虑绑定变量,cardnality因素,可以使用table函数,自己写个函数切割字符串传入到数组或nested table中,然后用table函数将in条件换成子查询即可,可能要加hint
  • 打赏
  • 举报
回复
unm 2010-07-04
其实就一个字符串,这个字符串,怎么由动态sql里面传出到EXECUTE IMMEDIATE

也就是动态sql执行时里面变量生成的字符串,怎么传出到EXECUTE IMMEDIATE这个层面
  • 打赏
  • 举报
回复
vber1010 2010-07-04
用数组、
  • 打赏
  • 举报
回复
发帖
基础和管理

1.7w+

社区成员

Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
帖子事件
创建了帖子
2010-07-04 11:03
社区公告
暂无公告