簡體   English   中英

ODP.NET將大字節數組傳遞給接受blob的PL / SQL存儲過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM