নির্বাচিত ক্যোয়ারিতে গাণিতিক ওভারফ্লো


9

আমি একটি সাধারণ নির্বাচনী স্টেটমেন্টে একটি গাণিতিক ওভারফ্লোয়ের মুখোমুখি হয়েছি। অনুসন্ধান নীচের যেমন ছিল

SELECT [SaleValue] FROM Sales

[SaleValue]ডেটা টাইপ ছিল decimal(9,0)এবং একটি গণিত কলাম ছিল না।

কারণ এই ঘটেছে ছিল কারণ একরকম কলামটি একটি সারি ছিল যেখানে এই ক্ষেত্রে নির্দিষ্ট ডাটাটাইপ চেয়ে একটি মান বেশি সংরক্ষণকারী হয়, যেমন decimal(10,0)

আমি যখন কলামটির আকার বাড়িয়েছি তখনই আমি কাজ করতে বাছাই করতে পারতাম। প্রশ্নের মধ্যে থাকা টেবিলের সাথে অন্য দুটি কলাম এবং সারিগুলিতে আরও দুটি দৃষ্টান্ত রয়েছে।

এই পরিস্থিতি কীভাবে সম্ভব হয়েছিল? কলামে প্রথম স্থানে কীভাবে একটি বহির্মুখী মান সংরক্ষণ করা হয়েছিল?

আমি মাইক্রোসফ্ট এসকিউএল সার্ভার ব্যবহার করছি + এটি একটি বেস টেবিল, ভিউ নয়।


1
আমি সম্ভবত এটি করতে বাধ্য করার একমাত্র সম্ভাব্য উপায়টি হ'ল ড্যাকের মাধ্যমে সিস্টেম টেবিলগুলি সম্পাদনা করা - একটি মোটামুটি হিংস্র প্রক্রিয়া যা কেউ আশাবাদী আপনাকে বলতে সক্ষম হতে পারে যে এটি এই ডিবির সাথে করা হয়েছিল কিনা। তারপরেও আমি নিশ্চিত নই যে এটি মোটেও কার্যকর হবে (বা এমনকি সম্ভব হবে)) এর বাইরে, আমাদের নিজের জন্য এই পরিস্থিতিটি দেখার জন্য সত্যই একটি রেপ্রো স্ক্রিপ্ট দরকার এবং আমি সন্দেহ করি যে যদি সম্ভব হয় তবে সহজেই পরীক্ষাগুলি কয়েক বছর সময় নিতে পারে the
ড্যামিয়েন_এ_বিশ্বাসীরা

এর চেয়েও খারাপ, কেবল মনে রাখবেন যে 9/10 স্টোরেজ আকারের একটি কাটওভার পয়েন্ট decimal- একটি decimal(9,0)5 বাইট, একটি decimal(10,0)9 দখল করা উচিত So সুতরাং আমি মনে করি এটি কম সম্ভাবনা রয়েছে কারণ আপনি সিস্টেম টেবিলগুলি সম্পাদনা করার মাধ্যমে এটি করতে পারবেন যেহেতু আপনার থাকবে না প্রতিটি সারিতে থাকা ডেটার জন্য সঠিক স্টোরেজ আকার।
ড্যামিয়েন_আ_বিশ্বাসীরা

1
@ ডামিয়েন_সে_ অবিশ্বাসী কীভাবে পুনরুত্পাদন করবেন সে সম্পর্কে কোনও ধারণা নেই। কী ঘটেছিল তা বুঝতে আমার এক ঘন্টা সময় লেগেছে। এটি দেখতে শুকনো জল বা ঠান্ডা উত্তাপ দেখার মতো ছিল। সত্যিই, এটি আমাকে স্টাম্পড ছেড়ে দিয়েছে।

উত্তর:


15

এটি বেশ কয়েকটি উপায়ে ঘটতে পারে, যেমন এসকিউএল সার্ভার 2005 এর ট্রাবলশুটিং ডিবিসিসি ত্রুটি 2570 এবং পরবর্তী সংস্করণগুলিতে বর্ণিত হিসাবে :

নিম্নলিখিত কারণগুলিতে অবৈধ বা সীমার বাইরে ডেটা পূর্ববর্তী সংস্করণগুলিতে এসকিউএল সার্ভার ডাটাবেসে সংরক্ষণ করা থাকতে পারে:

  • বিসিপি ইউটিলিটি যেমন বাল্ক সন্নিবেশ পদ্ধতি ব্যবহার করার সময় উত্সটিতে অবৈধ তথ্য উপস্থিত ছিল।
  • এসকিউএল সার্ভারে করা আরপিসি ইভেন্ট কলগুলির মধ্য দিয়ে অবৈধ ডেটা পাস হয়েছিল।
  • শারীরিক ডেটা দুর্নীতির অন্যান্য সম্ভাব্য কারণগুলি কলাম মানটি একটি অবৈধ অবস্থায় ফেলেছে।

এই নিবন্ধটিতে বিষয় সম্পর্কে প্রচুর দরকারী তথ্য রয়েছে। মূলসূত্র জন্য, -এর ডকুমেন্টেশান দেখুন DBCC CHECKDBএবং DATA_PURITYবিশেষ করে বিকল্প।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.