多行的动态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??
...全文
199 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
用数组、

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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