NHibernate(v2.1.2)的當前版本是否支持訪問Oracle存儲過程輸出REFCURSOR 此外到輸出參數?NHibernate訪問Oracle存儲過程REFCURSOR和輸出參數
我可以用我的代碼訪問輸出refcursor罰款。但是我不知道我可以在同一個存儲過程中訪問額外的輸出參數。
調用語法的一些示例將不勝感激。謝謝。
NHibernate(v2.1.2)的當前版本是否支持訪問Oracle存儲過程輸出REFCURSOR 此外到輸出參數?NHibernate訪問Oracle存儲過程REFCURSOR和輸出參數
我可以用我的代碼訪問輸出refcursor罰款。但是我不知道我可以在同一個存儲過程中訪問額外的輸出參數。
調用語法的一些示例將不勝感激。謝謝。
不,它不。只支持一個refcursor,它必須是sproc中的第一個參數。
您可以始終從會話中獲取IDbConnection,然後使用純ODP.Net處理此類情況(您失去了nh功能),或者更改存儲過程。
我發現了一個解決方案,用NHibernate調用舊的存儲過程。
我不認爲這是更好的辦法,但我們通常沒有時間來重構一切,所以:
using (ITransaction transaction = _session.BeginTransaction()) {
IDbCommand command = new OracleCommand();
command.Connection = _session.Connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "pk_package.pr_procedure";
// Set input parameters
var param1 = new OracleParameter("@param1", OracleDbType.Decimal) {Value = someField};
var param2 = new OracleParameter("@param2", OracleDbType.Decimal) {Value = 1};
command.Parameters.Add(param1);
command.Parameters.Add(param2);
// Execute the stored procedure
command.ExecuteNonQuery();
transaction.Commit();
}