2016-12-13 45 views
0

我需要通過C#用戶定義的對象:套印C#用戶定義的對象到PL/SQL函數作爲參數

[DataContract] 
public class SEmployeeIncome 
{ 
    [DataMember] 
    [OracleObjectMappingAttribute("CARDID")] 
    public string CardId { get; set; } 
    [DataMember] 
    [OracleObjectMappingAttribute("INCOMETIME")] 
    public string IncomeTime { get; set; } 

} 

作爲列表PL/SQL函數但Oracle返回這樣的誤差: {「無效參數結合\ r \ n參數名:p_employees_income「}

我這是怎麼傳遞的對象列表作爲參數:

 var oracleParam = new OracleParameter(); 
     oracleParam.OracleDbType = OracleDbType.Array; 
     oracleParam.Direction = ParameterDirection.Input; 
     oracleParam.ParameterName = "p_employees_income"; 
     oracleParam.Size = entity.EmployeesIncome.Count(); 
     oracleParam.Value = entity.EmployeesIncome.ToArray() ;//SEmployeeIncome list 

     oracleCommand.Parameters.Add(oracleParam); 

和pl/sql函數定義爲:

Function search_delayed_employees (p_employees_income employee_income) 
return ics_types.result_cursor ; 
+0

它看起來像你正試圖傳遞一個數組到一個pl/sql函數參數接受一個單一的。嘗試傳遞'ToArray()。First()'來查看它是否接受 –

回答

0

我找到了我的問題的答案。答案的解釋: http://appsjack.blogspot.com/2010/09/pass-custom-udt-types-to-oracle-stored.html

+0

該博客沒有提到有一個Visual Studio工具來創建C#類。以下是演示如何使用可能也有用的UDT:http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/appdev/dotnet/userdefinedtypes/index.html –

+0

謝謝基督教。這是一個很好的工具。 –

相關問題