我有一个在我的ORACLE DATABASE
中获取tabled值参数的过程 TYPE Table1 IS TABLE OF "Owner".Param1.TableName%TYPE;
TYPE Table2 IS RECORD ( Param1 NUMBER, Param2 NUMBER, Param3 VARCHAR2(20));
TYPE Table3 IS TABLE OF Table2;
程序如下:
PROCEDURE USP_PROCEDURE_NAME ( pi_Param_1 Table1, po_Param2 out sys_refcursor ) AS
output_Table Table3 := Table3();
n integer := 0;
BEGIN
for r in (select ID, Addl_ID, code from "Owner"."t_CODE" where ID = pi_Param_1(n))
loop
output_Table.extend;
n := n + 1;
output_Table(n) := Table2(r.Param1, r.Param2, r.Param3);
end loop;
END USP_PROCEDURE_NAME;
我怎样才能调用我的c#代码中的参数。
public DataTable GetFields(DataTable ID)
{
DataTable dt_getFields = new DataTable();
System.Data.OracleClient.OracleParameter[] oraParam = new System.Data.OracleClient.OracleParameter[2];
oraParam[0] = OracleHelper.CreateParam("pi_Param_1", System.Data.OracleClient.OracleType.??, ParameterDirection.Input, ID);
oraParam[1] = OracleHelper.CreateParam("po_Param2", System.Data.OracleClient.OracleType.Cursor, ParameterDirection.Output, "0");
dt_getFields = OracleHelper.ReturnDataTable(CommandType.StoredProcedure, "USP_PROCEDURE_NAME", oraParam)
return dt_getFields;
}
如何传递Tabled值参数,因为System.Data.OracleClient.OracleType没有任何适合DataTable的东西?这样做还有其他工作吗
编辑:
我无法使用OracleDbType,因为我无法在我的机器上安装Oracle.DataAccess dll。这样做有其他选择吗?