Oracle的存储过程能否实现‘不限定输入的参数个数’?

 我来答
198901245631
推荐于2017-09-03 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1725万
展开全部

写存储过程时,输入的参数个数是固定的,但最近业务需求,输入的参数不固定。

思路:oracle存储过程的输入参数个数、类型肯定不能改,因此输入不定个数参数时必须另想它法。

变通方法:客户端将需要传入的参数先拼接成一个字符串,再传给oracle存储过程,存储过程收到该字符串后,进行解析出所有的需要的参数。

yang_zs
2012-07-30
知道答主
回答量:50
采纳率:0%
帮助的人:18.4万
展开全部
可以实现,就是做一个字符串的输入参数,如:para varchar2,在输入值和使用的时候作为一个参数组合就可以了,但是要统一规则,如para 为‘#a1#2#a3.....’.在存储过程中解析就可以了。
追问
你的这个答案和‘流浪云风’的是一个意思。谢谢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友48cb9a0
2012-07-30 · TA获得超过653个赞
知道答主
回答量:110
采纳率:0%
帮助的人:82万
展开全部
暂时不能,可尽量多的设置参数个数,在存储过程里面做判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流浪云风
推荐于2018-07-29 · TA获得超过4315个赞
知道大有可为答主
回答量:1119
采纳率:69%
帮助的人:932万
展开全部
'不限定输入的参数个数' 是不可能的,不过如果你想实现这样可变入参个数的效果,可以变通一下。
比如:入参inStr varchar2类型(这个字符串是多个入参以固定分割符拼接而成的),传入存储过程后,在根据分隔符拆分成多个变量。
这样就可以实现你要的效果了。如果需要可变个数的出参,也可以这样做。

这只是个思路,如果有需要,还可以定义type等等。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式