[英]ODP.NET Pass large byte array to PL/SQL stored procedure accepting blob
我有一個PL / SQL存儲過程接受BLOB參數(以及其他參數)並執行BLOB到表中的插入。 如何將大型(1MB及更大)字節數組從.NET傳遞到存儲過程。
從Oracle 11.2 / ODP.Net v2.112.1.2開始,您無法傳遞BLOB
數組。 從Oracle®DataProvider for .NET Developer's Guide 11g第2版(11.2.0.3)開始,PL / SQL關聯數組綁定 :
... ODP.NET支持包含以下數據類型的PL / SQL關聯數組的綁定參數。
BINARY_FLOAT CHAR DATE NCHAR NUMBER NVARCHAR2 RAW ROWID UROWID VARCHAR2
使用不受支持的數據類型和關聯數組可能會導致ORA-600錯誤。
另請注意: Oracle論壇:傳遞不支持的BLOB關聯數組 。
在設置SP查詢(准備好准備它)時,將參數的數據類型設置為OracleDbType.Blob
。
OracleParameter p = query.CreateParameter();
p.OracleDbType = OracleDbType.Blob;
p.Direction = ParameterDirection.Input;
然后在運行查詢之前,只需將參數的值設置為您提到的大BLOB。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.