比如我一个表 product 有两个字段 A ,B
需求是 不确定要显示哪个字段,
所以打算 将字段在外面 获取到之后传到包里面,
如下的 procudure
我建了一个包TEST,包中包含一个方法get_info(v_column in varchar,p_cursor out TEST.cursortype)procedure get_info(v_column in varchar,p_cursor out TEST.cursortype)
as
begin
open p_cursor for
select v_column from A;
end;
如果 A和B 都 有的话 v_column 就会传入 A,B
如果 只有 A 的话v_column 就会只传人 A
但是 这样 C# 还是 报错了 ,请问怎么解决?
需求是 不确定要显示哪个字段,
所以打算 将字段在外面 获取到之后传到包里面,
如下的 procudure
我建了一个包TEST,包中包含一个方法get_info(v_column in varchar,p_cursor out TEST.cursortype)procedure get_info(v_column in varchar,p_cursor out TEST.cursortype)
as
begin
open p_cursor for
select v_column from A;
end;
如果 A和B 都 有的话 v_column 就会传入 A,B
如果 只有 A 的话v_column 就会只传人 A
但是 这样 C# 还是 报错了 ,请问怎么解决?
比如:execute immediate 'select ....;
或是using
as
begin
open p_cursor for 'select '||v_column||' from A';
end;
--最好用存储过程来做,你需要动态SQL来拼接,用动态游标来返回结果:
create or replace procedure get_info(v_column in varchar,p_cursor out sys_refcursor)
as
begin
open p_cursor for 'select '||v_column||' from A';
end;