所以,我有一个函数(我无法改变),它返回对象表,我需要用c#代码获取它们。
create or replace FUNCTION choose_name( )
RETURN TBL_names IS
result TBL_names:=TBL_names();
/*
CREATE OR REPLACE TYPE OBJ_names as object (
"Param1" varchar2(555),
"Param2" NUMBER
)
CREATE OR REPLACE TYPE TBL_names is table of OBJ_names
*/
这是一个c#代码:
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "choose_name";
command.Parameters.Add("TBL_names", OracleDbType.RefCursor).Direction = ParameterDirection.ReturnValue;
但是我收到错误 - wrong types of arguments.
我知道它是一个表,而不是一个引用游标。我怎么想这样做呢?
答案 0 :(得分:2)
在我看来,查询表函数的最简单方法是将它们视为常规SQL:
select * from table(choose_name)
这将产生与您在使用ExecuteReader
时习惯的行。