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

大哥大姐们哪位知道,Oracle的存储过程能否实现‘不限定输入的参数个数’?
最新回答
洞房不败

2024-10-15 03:57:44

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

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

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

南极星老奶奶

2024-10-15 04:02:48

可以实现,就是做一个字符串的输入参数,如:para varchar2,在输入值和使用的时候作为一个参数组合就可以了,但是要统一规则,如para 为‘#a1#2#a3.....’.在存储过程中解析就可以了。
追问
你的这个答案和‘流浪云风’的是一个意思。谢谢。
春夜浅

2024-10-15 07:53:30

暂时不能,可尽量多的设置参数个数,在存储过程里面做判断
一丁温暖

2024-10-15 05:43:43

'不限定输入的参数个数' 是不可能的,不过如果你想实现这样可变入参个数的效果,可以变通一下。
比如:入参inStr varchar2类型(这个字符串是多个入参以固定分割符拼接而成的),传入存储过程后,在根据分隔符拆分成多个变量。
这样就可以实现你要的效果了。如果需要可变个数的出参,也可以这样做。

这只是个思路,如果有需要,还可以定义type等等。