c#从pl \ sql函数返回表

时间:2017-05-22 13:14:57

标签: c# plsql

所以,我有一个函数(我无法改变),它返回对象表,我需要用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.我知道它是一个表,而不是一个引用游标。我怎么想这样做呢?

1 个答案:

答案 0 :(得分:2)

在我看来,查询表函数的最简单方法是将它们视为常规SQL:

select * from table(choose_name)

这将产生与您在使用ExecuteReader时习惯的行。