【发布时间】:2021-09-05 06:19:44
【问题描述】:
我想实现以下要求:
示例程序 #1:
Procedure Proc1(Input1 VARCHAR2,
Input2 NUMBER,
Input3 VARCHAR2,
Output Sys_RefCursor)
IS
BEGIN
..................
..................
..................
END;
示例程序 #2:
Procedure Proc2(Ipval1 VARCHAR2,
Ipval2 NUMBER,
Ipval3 VARCHAR3
Output Sys_RefCursor)
IS
Begin
..................
..................
..................
End;
现在的要求是,我想创建一个存储过程,它应该接受过程名称作为输入。
所以根据输入的过程名,应该动态产生结果。
Procedure GenProc(InputProcedureName VARCHAR2,
InputListVal VARCHAR2,
OutputCur SYS_REFCURSOR)
IS
Begin
................Dynamic Code ............... To produce result set as per input procedurename
END;
知道如何编写动态代码来满足这个要求吗?
让我们在这里说:
- InputProcedureName -- 可以是 Proc1 或 Proc2 ,
- InputListVal -- 输入过程名称的逗号分隔值列表,
- OutputCur -- 应该根据输入过程名动态生成输出列表
【问题讨论】:
-
您是说要创建一个SP,它以SP名称和参数作为输入,并返回命名SP的结果?
-
好的,但是 - 为什么要打扰?调用 Proc1 或 Proc2 并将参数直接传递给它们并直接从中获取输出不是更简单吗?
-
@Littlefoot .. 是的,但这是我要处理的方案.. 我将获得任何 proc 名称作为输入... 不限于其中 2 个..
-
@NickW ..是的,你是对的。
-
我认为这是一项技术/家庭作业。 @littlefoot 我同意这在现实世界中毫无意义