এসকিউএল সার্ভারে একটি বিস্মৃত চর দ্বারা একটি স্ট্রিং কীভাবে বিভক্ত করা যায়?



সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন

এই নিবন্ধে, আমরা সীমিত স্ট্রিংয়ের মানটি বিভক্ত করার বিভিন্ন উপায় নিয়ে আলোচনা করব। এটি সহ একাধিক পদ্ধতি ব্যবহার করে অর্জন করা যেতে পারে।



  • স্ট্রিংকে বিভক্ত করতে STRING_SPLIT ফাংশন ব্যবহার করুন
  • স্ট্রিংকে বিভক্ত করতে একটি ব্যবহারকারী-সংজ্ঞায়িত টেবিল-মূল্যবান ফাংশন তৈরি করুন,
  • স্ট্রিংয়ের মানটি বিভক্ত করতে এবং এক্সিমিলে একটি সীমানাযুক্ত স্ট্রিং রূপান্তর করতে XQuery ব্যবহার করুন

প্রথমত, আমাদের একটি টেবিল তৈরি করতে হবে এবং এতে ডেটা .োকানো দরকার যা তিনটি পদ্ধতিতে ব্যবহৃত হবে। সারণীতে ফিল্ড আইডি সহ একটির সারি থাকা উচিত এবং এতে ডিলিমিটার অক্ষর থাকবে string নিম্নলিখিত কোড ব্যবহার করে 'ছাত্র' নামে একটি সারণী তৈরি করুন।



টেবিল শিক্ষার্থী তৈরি করুন (আইডি INT পরিচয় (1, 1), ছাত্র_নাম ভর্চার (ম্যাক্স)

নিম্নলিখিত কোডটি সম্পাদন করে একটি একক সারিতে কমা দ্বারা পৃথক করা শিক্ষার্থীর নাম sertোকান।



শিক্ষার্থীর (শিক্ষার্থীর নাম) ভ্যালু অন্তর্ভুক্ত করুন ('মনরো, মন্টানেজ, মারোলাহাকিস, নেলেলি, অ্যালব্রাইট, গারোফোলো, পেরেইরা, জনসন, ওয়াগনার, কনরাড')

সারণী তৈরি এবং ডেটা সন্নিবেশ

তথ্যটি টেবিলের মধ্যে প্রবেশ করানো হয়েছে বা নিম্নলিখিত কোডটি ব্যবহার না করা হয়েছে কিনা তা যাচাই করুন।

ছাত্র থেকে * নির্বাচন করুন

ডেটা 'ছাত্র' সারণিতে প্রবেশ করা হয়েছে কিনা তা যাচাই করুন



পদ্ধতি 1: স্ট্রিংকে বিভক্ত করতে STRING_SPLIT ফাংশনটি ব্যবহার করুন

এসকিউএল সার্ভার 2016, 'STRING_SPLIT' ফাংশনটি চালু হয়েছিল যা ১৩০ বা তারও বেশি উপরে সামঞ্জস্যতার স্তরের সাথে ব্যবহার করা যেতে পারে। আপনি যদি 2016 এর এসকিউএল সার্ভার সংস্করণ বা উচ্চতর ব্যবহার করেন তবে আপনি এই বিল্ট-ইন ফাংশনটি ব্যবহার করতে পারেন।

আরও 'STRING_SPLIT' একটি স্ট্রিং ইনপুট করে যা সাব-স্ট্রিংগুলিকে সীমানাযুক্ত করে এবং ডিলিমিটার বা বিভাজক হিসাবে একটি অক্ষরকে ইনপুট করে। ফাংশনটি একটি একক-কলামের টেবিলের আউটপুট দেয় যার সারিগুলিতে সাব-স্ট্রিং রয়েছে। আউটপুট কলামের নাম “ মান ' । এই ফাংশনটি দুটি পরামিতি পায়। প্রথম প্যারামিটারটি একটি স্ট্রিং এবং দ্বিতীয়টি হ'ল সীমানা চরিত্র বা বিভাজক যার ভিত্তিতে আমাদের স্ট্রিংটি বিভক্ত করতে হবে। আউটপুটটিতে একটি একক-কলামের টেবিল রয়েছে যাতে সাবস্ট্রিংগুলি উপস্থিত রয়েছে। এই আউটপুট কলামটির নাম দেওয়া হয়েছে 'মান' আমরা নীচের চিত্রে দেখতে পারেন। তদুপরি, 'STRING স্প্লিট' টেবিল_মূল্যযুক্ত ফাংশনটি যদি খালি টেবিলটি দেয় তবে ইনপুট স্ট্রিংটি নুল হয়।

ডাটাবেসের সামঞ্জস্যতা স্তর:

প্রতিটিতথ্যশালাহয়সংযুক্তসঙ্গেপ্রতিসামঞ্জস্যতাস্তরএটাসক্ষম করে তোলেদ্যডাটাবেসেরআচরণপ্রতিথাকাউপযুক্তসাথেহয়বিশেষএসকিউএলসার্ভারসংস্করণএটারানচালু.

এখন আমরা কমা দ্বারা বিভাজনিত স্ট্রিংকে বিভক্ত করতে 'স্ট্রিং_স্প্লিট' ফাংশন বলব। তবে সামঞ্জস্যের স্তরটি ১৩০ এরও কম ছিল সুতরাং নিম্নলিখিত ত্রুটিটি উত্থাপিত হয়েছিল। 'অবৈধ অবজেক্টের নাম 'SPLIT_STRING''

ত্রুটি দেখা দেয় যদি ডাটাবেসের সামঞ্জস্যতা স্তরটি 130 'অবৈধ অবজেক্টের নাম split_string' এর চেয়ে কম হয়

সুতরাং আমাদের 130 বা ততোধিক ডাটাবেসের সামঞ্জস্যের স্তরটি সেট করতে হবে। সুতরাং আমরা ডাটাবেসের সামঞ্জস্যের স্তরটি নির্ধারণ করতে এই পদক্ষেপগুলি অনুসরণ করব।

  • প্রথমে নীচের কোডটি ব্যবহার করে “একক_ ব্যবহারকার_স্যাক্স_মোড” তে সেট করা ডাটাবেস।
একমাত্র ডেটাবেস সেট সিঙ্গেল_ইউসার দিন TER
  • দ্বিতীয়ত, নিম্নলিখিত কোড ব্যবহার করে ডাটাবেসের সামঞ্জস্য স্তর পরিবর্তন করুন।
পরিবর্তে ডেটাবেস সেট কমপিটিলিটি_লেভেল = ১৩০
  • নিম্নলিখিত কোডটি ব্যবহার করে একাধিক ব্যবহারকারীর অ্যাক্সেস মোডে ডাটাবেসটিকে আবার রাখুন।
ডেটাবেস সেট মাল্টি_ইউসার যোগ করুন
ব্যবহার করুন [মাস্টার] ডেটাবেস বদলে যান [সেতু_ কেন্দ্রীকরণ] সেট করুন একমাত্র_উক্তার পরিবর্তে ডেটাবেস [সেতু_কেন্দ্রিকতা] সেট কমপ্লেটিবিলিটি_লেভেল = ১৩০ টি বিকল্প ডেটাবেস [সেতু_কেন্দ্রিকতা] সেট করুন মাল্টি_উসার

আউটপুটটি হবে:

সামঞ্জস্যতা স্তরকে 130 এ পরিবর্তন করুন

প্রয়োজনীয় ফলাফল পেতে এখন এই কোডটি চালান।

@ স্ট্রিং_ভ্যালু ভারচার (ম্যাক্স) ডিক্লার করুন; SET @ স্ট্রিং_ভ্যালু = 'মনরো, মন্টেনেজ, মারোলাহাকিস, নেলেলি, অ্যালব্রাইট, গারোফলো, পেরেইরা, জনসন, ওয়াগনার, কনরাড' নির্বাচন করুন STRING_SPLIT থেকে (@ স্ট্রিং_ভ্যালু,