मेरे अपने प्रश्न का उत्तर देना:
तो ऐसा लगता है कि Oracle संख्या प्रकार C# दशमलव प्रकार की तुलना में कई अधिक दशमलव स्थानों को धारण कर सकता है और यदि Oracle C# से अधिक वापस लौटने का प्रयास कर रहा है, तो यह InvalidCastException को फेंक देता है।
समाधान?
अपने एसक्यूएल में, किसी भी परिणाम को गोल करें जिसमें कुछ समझदार के लिए बहुत से दशमलव स्थान हो सकते हैं। तो मैंने यह किया:
SELECT acct_no, ROUND(market_value/mv_total, 8) -- rounding this division solves the problem
FROM myTable
WHERE NVL(market_value, 0) != 0
AND NVL(mv_total, 0) != 0
और यह काम कर गया।
दूर ले जाना है:Oracle संख्या प्रकार और C# दशमलव के बीच असंगति। अमान्य कास्ट अपवादों से बचने के लिए अपने Oracle दशमलव स्थानों को प्रतिबंधित करें।
आशा है कि यह किसी और की मदद करेगा!