এসকিউএল সার্ভার / টি-এসকিউএল লাইন-স্ট্রিংগুলি ভাঙ্গার জন্য লাইন-ধারাবাহিকতা সমর্থন করে?


13

আমার মাঝে মাঝে একটি এসকিউএল স্ক্রিপ্ট থাকে যার মধ্যে এক বা একাধিক সুপার-লম্বা (কখনও কখনও এমনকি বোকা-দীর্ঘ) স্ট্রিং থাকে। সাধারণত এগুলি VARBINARYআক্ষরিক / ধ্রুবক যা ফাইল / সমাবেশগুলি উপস্থাপন করে তবে মাঝে মাঝে সেগুলি পাঠ্য হয়।

সত্যিই দীর্ঘ স্ট্রিংগুলির সাথে প্রাথমিক সমস্যাটি হ'ল কিছু পাঠ্য সম্পাদক এগুলি এত ভালভাবে পরিচালনা করে না। উদাহরণস্বরূপ, আমার কাছে একটি VARBINARYআক্ষরিক যা আমি একটি CREATE ASSEMBLY [AssemblyName] FROM 0x....বিবৃতিতে ব্যবহার করি এবং অ্যাসেম্বলি নিজেই মাত্র 1 এমবি আকারের, যা একটি পাঠ্য ফাইলে মাত্র 2 মিলিয়ন অক্ষরের সমতুল্য হয় কারণ প্রতিটি বাইটের হেক্স স্বরলিপিতে দুটি বর্ণের প্রতিনিধিত্ব করার প্রয়োজন হয় (যেমন 0x1F= ক 1এবং একটি F)। এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও (এসএসএমএস) এটিকে ভালভাবে পরিচালনা করে না এবং কয়েক সেকেন্ডের জন্য স্তব্ধ হয়ে যায় কারণ আমি সেই লাইনটি স্ক্রোল করার চেষ্টা করি। এবং প্রকৃতপক্ষে, কিছু সংস্করণ (এটি এখনও ঘটে কিনা তা নিশ্চিত নয়) এমনকি কোনও নির্দিষ্ট দৈর্ঘ্যের উপর কমপক্ষে একটি লাইন থাকা কোনও স্ক্রিপ্ট খোলার সময় লম্বা রেখাগুলি সম্পর্কে সতর্কতা প্রদর্শন করবে।

একটি গৌণ সমস্যা হ'ল শব্দ-মোড়কে সক্ষম না করে বা অনলাইনে পোস্ট করার পরে সম্পাদকটিতে ব্যবহার করার সময় এটি ফর্ম্যাটিংটিকে জটিল করে তোলে। এখানে সমস্যাটি হ'ল অনুভূমিক স্ক্রোল বারের জন্য স্লাইডারটি খুব সংকীর্ণ এবং এটিকে সামান্য সরানো হলেও সামান্য কিছুটা সাধারণত অ-সুপার-দীর্ঘ লেখাকে স্ক্রোল করে।

এখন, টি-এসকিউএল নিউলাইন বা এমনকি আধা-কোলনের সাথে কমান্ডগুলি শেষ করে না (যদিও এসকিউএল সার্ভার ২০০৫ থেকে শুরু করে অর্ধ-কলোনগুলি পছন্দ / প্রস্তাবিত) are সুতরাং যেহেতু এসকিউএল সার্ভার প্রতিটি বিবৃতিটি এমনভাবে বিশ্লেষণ করতে জানে যে এটি শেষ হয়ে গেলে এটি জানে তাই এটি এক newline/ carriage-return+ দ্বারা পৃথককৃত একাধিক লাইন ধরে দীর্ঘ রেখাটি বিভক্ত করার মতো line-feedমনে হয় অযৌক্তিক বলে মনে হয় না। তবে এটি উভয় ক্ষেত্রেই কাজ করে না।

PRINT 'Line1
Line2';

প্রত্যাবর্তন ("বার্তা" ট্যাবে):

Line1
Line2

আধ্যাত্মিক / ধ্রুবকের মধ্যে নিউলাইনটি হওয়ায় এটি যথেষ্ট অর্থবোধ করে। কিন্তু VARBINARYএটির জন্য এটি করাও কাজ করে না।

PRINT 0x1234
5678;

আমাকে একটি ত্রুটি দেয়

উত্তর:


13

কৃতজ্ঞতার সাথে টি-এসকিউএল-এ \(ব্যাকস্ল্যাশ) চরিত্রের মাধ্যমে লাইন-ধারাবাহিকতার জন্য সমর্থন রয়েছে । কেবল একটি লাইন শেষে newline/ carriage-return+ এর ঠিক আগে রেখে দিন line-feedএবং নতুন লাইনটি উপেক্ষা করা হবে।

পাঠ্য স্ট্রিংয়ের জন্য, এটি নিম্নরূপ আচরণ করে:

PRINT 'Line1\
Line2';

প্রত্যাবর্তন ("বার্তা" ট্যাবে):

Line1Line2

বাইনারি / হেক্স স্ট্রিংয়ের জন্য, এটি নিম্নলিখিত হিসাবে আচরণ করে:

PRINT 0x1234\
5678;

প্রত্যাবর্তন ("বার্তা" ট্যাবে):

0x12345678;

বাইনারি ফাইলগুলি (অ্যাসেমব্লিসি, শংসাপত্রগুলি) এসকিউএল স্ক্রিপ্টগুলিতে ব্যবহারের জন্য পাঠ্য হেক্স-বাইট স্ট্রিংগুলিতে ফর্ম্যাট করার জন্য, আমি বাইনারিফর্মেটর নামক একটি কমান্ড-লাইন ইউটিলিটি লিখেছিলাম যা আমি ওপেন-সোর্স হিসাবে প্রকাশ করেছি। এটি বাইনারি ফাইলটিকে কেবল একটি পাঠ্য উপস্থাপনে রূপান্তরিত করে না, পাশাপাশি VARBINARYপ্রতিটি সারিটির জন্য নির্দিষ্ট অক্ষরের বর্ণনার ভিত্তিতে লম্বা আক্ষরিক প্রসারণের জন্য লাইন-ধারাবাহিকতা ব্যবহার করে। ফলাফলটি লাইন বরাবর কিছু:

4D5A09DE34F178313345A4\
00007F4E39782EFC48D842\
00000000

যা আমি তখন আমার স্ক্রিপ্টে অনুলিপি করে আটকান, যেমনটি দেখানো হয়েছে {...} :

CREATE ASSEMBLY [AssemblyName]
FROM 0x\
{output from BinaryFormatter}
;

এই বিষয়ে অতিরিক্ত তথ্যের জন্য, দয়া করে আমার ব্লগ পোস্টটি দেখুন: টি-এসকিউএল-এ লাইন-কন্টিনিয়েশন

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