簡體   English   中英

適用於Oracle的企業庫dbcommand AddInParameter方法

[英]enterprise library dbcommand AddInParameter method for Oracle

我的問題與這個問題非常相似-Oracle的Addin參數,除了我使用的是Oracle 11g。 該數據庫具有VARCHAR(Western European)NVARCHAR(Unicode)數據類型的兩個不同的字符集。

db.AddInParameter(cmd, "nationalColumn", DbType.String, "高野")

數據庫中的國家字符集是unicode,因此NVARCHAR列能夠保存這些字符。

我的問題是如何告訴db.AddInParameter函數我要添加的參數是NVARCHAR而不是默認情況下似乎假定的VARCHAR。

除此之外,我正在使用System.Data.OracleClient連接到數據庫

您不能以西歐編碼來編碼漢字。 此編碼定義的字符數量有限,並且不包含中文。

您期望什么輸出? 我希望數據混亂或返回錯誤。

您是自己指定參數還是讓Enterprise Library嘗試找出參數類型? 如果您在打電話

command.AddInParameter(“parameterName”, value);

嘗試調用該過程,並讓Enterprise Library找出參數,例如以下示例:

DB.ExecuteNonQuery(“PKG_USER.DELETE”, userId);

該過程需要一個稱為P_IDINT參數,但是該命令僅傳遞參數值。 EntLib使用參數order來發送它們。

也看看

我花了一周的時間來弄清楚自己的問題。 除非明確將其指定為OracleType.Nvarchar,否則System.Data命名空間無法理解其正在處理的列是國家列。

要解決上述情況,我必須重寫AddInParameter函數以添加一個開關案例,該案例檢查輸入的DBType是否為String並將其映射到OracleType.NVarchar。

高溫超導

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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