[英]Cast array returned from Oracle stored procedure
我很難從 Oracle 存儲過程返回的以下對象類型數組中讀取值
var arrUtil = cmd.Parameters["UTILBYDAY"].Value;
arrUtil 數組屬於以下類型並具有這些值。 知道如何在 C# 中將其轉換為雙類型嗎?
{Oracle.ManagedDataAccess.Types.OracleDecimal[10]}
[0]: {28.16901408450704225352112676056338028169}
[1]: {57.24381625441696113074204946996466431095}
[2]: {29.34782608695652173913043478260869565217}
[3]: {22.02166064981949458483754512635379061372}
[4]: {70.56737588652482269503546099290780141844}
[5]: {79.78723404255319148936170212765957446809}
[6]: {62.41134751773049645390070921985815602837}
[7]: {23.40425531914893617021276595744680851064}
[8]: {5.31914893617021276595744680851063829787}
[9]: {63.507109004739336492890995260663507109}
我試圖將其轉換為雙重使用
double[] arraUtil = (double[]) cmd.Parameters["UTILBYDAY"].Value;
但最終出現錯誤,說無法將 Oracle.ManagedDataAccess.Types.OracleDecimal[] 轉換為 double[]。
我也試過用谷歌搜索但找不到任何有用的東西。 任何幫助表示贊賞。 謝謝你。
Oracle.ManagedDataAccess.Types.OracleDecimal
類型定義了一個顯式轉換運算符以將其值轉換為double
精度類型。
您可以像這樣轉換它們:
using System.Linq;
using Oracle.ManagedDataAccess.Types;
OracleDecimal[] arrUtil = cmd.Parameters["UTILBYDAY"].Value;
// Convert to double
double[] utils = arrUtil.Select(util => (double)util).ToArray();
// Convert to decimal
decimal[] utils = arrUtil.Select(util => (decimal)util).ToArray();
// Please note: This does NOT work!
double[] utils = arrUtil.Cast<double>().ToArray();
您可以將OracleDecimal
為byte
、 short
、 int
、 long
、 float
、 double
和decimal
。
在這里您可以找到所有顯式轉換運算符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.