我想知道如何將數組傳遞給存儲過程,而存儲過程又會從c#.net中返回一個數組?如何傳遞數組並將其返回給存儲過程?
0
A
回答
4
根據場景的不同,這裏有不同的選項。我在下面的很多示例中使用了SQL Server,但其中大部分可以在系統之間進行廣泛轉換。對於一個相對較小的數組(理想情況下爲vector),可以構造一個分隔字符串(製表符分隔,逗號分隔,無論什麼),並將其傳遞到數據庫並解析 - 通常是手動的(DBMS通常缺少「split」例程) ,但獲得預先編寫的「拆分」實現(例如,作爲SQL Server中的UDF)非常容易。典型用法:
SELECT st.*
FROM dbo.SplitUDF(@myarg) #udf
INNER JOIN SOME_TABLE st ON st.ID = #udf.Value
xml是另一種選擇,尤其對於複雜數據; SQL Server 2005及以上版本具有內置的xml解析功能,但不應該假設爲一般。
Table-valued parameters是另一種選擇,但這僅僅是SQL Server 2008--它可能是您正在尋找的東西。
另一種選擇,尤其是對大數據,是經由SQL數據泵入服務器分別(批量插入,SQLBulkCopy
「BCP」,SSIS無論)和處理數據,一旦它的存在。
要獲取數組/表格數據,標準SELECT
應該是您的默認選項,儘管您當然也可以構建xml或分隔字符數據。後者可以通過一個奇怪的SQL來完成:
DECLARE @foo varchar(max)
SET @foo = ''
SELECT @foo = @foo + st.SomeColumn + '|' -- pipe-delimited, note trailing |
FROM SOME_TABLE st
相關問題
- 1. 將數組傳遞給存儲過程
- 2. 如何將數組數組傳遞給Oracle存儲過程?
- 3. 如何將2D數組傳遞給存儲過程?
- 4. 如何將值的「數組」傳遞給我的存儲過程?
- 5. 將參數傳遞給存儲過程
- 6. 如何將參數傳遞給返回多個記錄的存儲過程
- 7. Android:返回上一個活動並將其傳遞給數組
- 8. 將數組傳遞到存儲過程
- 9. 將VARBINARY傳遞給存儲過程
- 10. 將列表傳遞給存儲過程
- 11. 將結構數組傳遞給Oracle存儲過程(CFMX)
- 12. 如何將Datetime值作爲參數傳遞給存儲過程?
- 13. 如何將參數傳遞給存儲過程
- 14. 如何將參數傳遞給EF存儲過程?
- 15. C#Winforms - 如何將參數傳遞給SQL Server存儲過程
- 16. 如何將UDF標量函數傳遞給存儲過程?
- 17. 如何將表名作爲參數傳遞給存儲過程?
- 18. 如何將參數傳遞給SQL存儲過程?
- 19. 如何將數組傳遞給plsql塊並將結果集返回給php?
- 20. 如何將表中的整數值數組傳遞給存儲過程?
- 21. SQL存儲過程:如何將文件集合傳遞給存儲過程?
- 22. 如何返回並傳遞數組?
- 23. 如何將Numpy數組傳遞給cffi函數以及如何讓其返回?
- 24. 如何將C#數組傳遞給C++並使用其他項將其返回給C#?
- 25. 如何將線程對象傳遞給新的活動,並將其返回到
- 26. 如何將用戶定義類型的數組傳遞給存儲過程
- 27. 如何將數組屬性從Java傳遞給SQL存儲過程?
- 28. 如何將日期數組作爲xml傳遞給存儲過程
- 29. 如何將一個浮點數組傳遞給SQL Server存儲過程?
- 30. ODP.NET如何將字符串數組傳遞給Oracle存儲過程?
你的數組有多大? (條目數量和內存佔用) – lexu 2010-04-26 05:55:31
..以及您使用的是哪種DBMS! – lexu 2010-04-26 05:56:58
http://stackoverflow.com/questions/1069311/passing-an-array-of-parameters-to-stored-procedure可能的重複 – 2010-04-26 06:02:23