我需要将一个数组从C#.net应用程序传递给oracle存储过程。 任何人都可以让我知道如何去做吗? 另外,在将输入参数传递给存储过程时,我在C#中使用哪种OracleType类型?
仅供参考,我在C#app中使用System.Data.OracleClient。
感谢。
答案 0 :(得分:7)
麦, System.Data.OracleClient不支持数组 http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/57a59fba-09e2-46cb-a072-6706b3ec5131
根据您的需要,您需要使用ODP.net客户端通过嵌套表类型(通过UDT或assoc。数组)实现此目的。这可能是一个很好的方向,尤其是。因为.net 4.0有deprecated System.Data.OracleClient。
但是如果你坚持使用System.Data.OracleClient并且你真的只是想在列表中做一个变量,你可以通过传入一个字符串并遵循以下一些建议来做到这一点: http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:210612357425
希望这会有所帮助
答案 1 :(得分:2)
您应该使用DB定义的嵌套表类型将数组传递给PL / SQL。看看this nice tutorial,它可能对你有所帮助。