এর মধ্যে অ্যাডাস্ট্রোফের সাথে কোনও মান toোকানোর জন্য সঠিক এসকিউএল সিনট্যাক্সটি কী?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
আমি একটি ত্রুটি পেতে থাকি কারণ আমি মনে করি যে ও এর পরে অ্যাস্টোস্ট্রোফ হ'ল মানটির জন্য শেষ ট্যাগ।
এর মধ্যে অ্যাডাস্ট্রোফের সাথে কোনও মান toোকানোর জন্য সঠিক এসকিউএল সিনট্যাক্সটি কী?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
আমি একটি ত্রুটি পেতে থাকি কারণ আমি মনে করি যে ও এর পরে অ্যাস্টোস্ট্রোফ হ'ল মানটির জন্য শেষ ট্যাগ।
উত্তর:
আপনার এসকিউএল-তে অ্যাডাস্ট্রোফ (যেমন একক উদ্ধৃতি চরিত্রটি ডাবল-আপ) এড়ান:
INSERT INTO Person
(First, Last)
VALUES
('Joe', 'O''Brien')
/\
right here
এটিই নির্বাচনী প্রশ্নগুলিতে প্রযোজ্য:
SELECT First, Last FROM Person WHERE Last = 'O''Brien'
অ্যাস্টোস্ট্রোফ বা একক উদ্ধৃতি, এসকিউএল-তে একটি বিশেষ চরিত্র যা স্ট্রিং ডেটার শুরু এবং শেষ নির্দিষ্ট করে। এর অর্থ এটি আপনার আক্ষরিক স্ট্রিং ডেটার অংশ হিসাবে ব্যবহার করতে escape
আপনার বিশেষ চরিত্রের প্রয়োজন। একক উদ্ধৃতি দিয়ে এটি সাধারণত আপনার উদ্ধৃতি দ্বিগুণ করে সম্পন্ন হয়। (দুটি একক উদ্ধৃতি অক্ষর, একক উদ্ধৃতির পরিবর্তে ডাবল-উদ্ধৃতি নয়))
দ্রষ্টব্য : আপনি যখনই কোনও কাঁচা এসকিউএল ইন্টারফেসের মাধ্যমে ম্যানুয়ালি ডেটা সম্পাদনা করেন তখনই এই সমস্যাটি নিয়ে আপনার চিন্তিত হওয়া উচিত, যেহেতু বিকাশের বাইরে পরীক্ষা এবং পরীক্ষার বাইরে প্রশ্ন লেখাই খুব বিরল ঘটনা হওয়া উচিত। কোডে এমন কৌশল এবং ফ্রেমওয়ার্ক রয়েছে (আপনার স্ট্যাকের উপর নির্ভর করে) যা বিশেষ অক্ষরগুলি, এসকিউএল ইঞ্জেকশন ইত্যাদির অব্যবহারের যত্ন নেয়
আপনাকে কেবল একক উদ্ধৃতিতে দ্বিগুণ করতে হবে ...
insert into Person (First, Last)
values ('Joe', 'O''Brien')
আপনার এস্টোস্ট্রোফ থেকে বাঁচতে হবে। ইন টি-এসকিউএল এই, একটি ডবল ঊর্ধকমা সাথে আছেন তাই আপনার insert
বিবৃতি হয়ে:
Insert into Person
(First, Last)
Values
'Joe', 'O''Brien'
Values
অবশ্যই বন্ধনীগুলিতে আবদ্ধ থাকতে হবে (যা এটি পরে @ জাস্টিননিউসনারের মতো একই উত্তর দেয়)
কারণ একটি স্ট্রিংয়ের শুরু এবং শেষ নির্দেশ করার জন্য একটি একক উদ্ধৃতি ব্যবহৃত হয়; আপনার এড়াতে হবে
সংক্ষিপ্ত উত্তরটি হল দুটি একক উদ্ধৃতি ব্যবহার করা - ''
- কোনও এসকিউএল ডাটাবেসের জন্য মানটি সংরক্ষণ করার জন্য '
।
আগত মানগুলিকে স্যানিটাইজ করতে রিপ্লেস ব্যবহার করে দেখুন:
আপনি নিখুঁত একক উদ্ধৃতি থেকে বাঁচতে যদি ''''
স্ট্রিংয়ের সাথে উপস্থিত থাকেন তবে তাদের অনুসন্ধান করতে এবং প্রতিস্থাপন করতে চান ''''''
।
এডুফি একটি ভাল ধারণা ছিল । তিনি তার কোড উদাহরণে এটি পেছনের দিকে পেয়েছেন। হয় জাভাস্ক্রিপ্ট বা এসকিউএলাইটে আপনি অ্যাকসেন্টের প্রতীক দিয়ে অ্যাস্টোস্ট্রোফ প্রতিস্থাপন করতে পারেন।
তিনি (দুর্ঘটনাক্রমে আমি নিশ্চিত) ও'ব্রায়ানে অ্যাস্টোস্ট্রোফের পরিবর্তে স্ট্রিংয়ের জন্য ডিলিমিটার হিসাবে অ্যাকসেন্ট প্রতীক স্থাপন করেছিলেন। এটি আসলে বেশিরভাগ ক্ষেত্রেই একটি ভয়ঙ্কর সহজ সমাধান simple
ঊর্ধকমা চরিত্র কল করে ঢোকানো যায় CHAR ঊর্ধকমা এর সঙ্গে ফাংশন ASCII টেবিল লুকআপ মান, 39. স্ট্রিং মান তারপর একটি একসাথে ঘনিভূত যাবে CONCATENATE অপারেটর ।
Insert into Person
(First, Last)
Values
'Joe',
concat('O',char(39),'Brien')
একক উদ্ধৃতিগুলি দ্বিগুণ করে পালিয়ে গেছে ,
নিম্নলিখিত এসকিউএল এই কার্যকারিতা চিত্রিত করে।
declare @person TABLE (
[First] nvarchar(200),
[Last] nvarchar(200)
)
insert into @person
(First, Last)
values
('Joe', 'O''Brien')
select * from @person
First | Last
===================
Joe | O'Brien
মানগুলির চারপাশে ডাবল উদ্ধৃতি চিহ্ন ব্যবহার করুন।
insert into Person (First, Last) Values("Joe","O'Brien")
He said, "Don't!"
একক উদ্ধৃতি এবং / অথবা ডাবল উদ্ধৃতি ব্যবহার করা - যা করা যেতে পারে: 'He said, "Don''t!"'
বা "He said, ""Don't!"""
। গ্রহণযোগ্য উত্তর সহ দীর্ঘ-প্রতিষ্ঠিত প্রশ্নের একটি নতুন উত্তর যুক্ত করার সময়, আপনাকে অবশ্যই নতুন, সম্পূর্ণ তথ্য সরবরাহ করতে হবে। ডাবল উদ্ধৃতি ব্যবহার করা নতুন - তবে কয়েকটি ডিবিএমএস-এর মধ্যে সীমাবদ্ধ; এগুলি গ্রহণ করে এমন কমপক্ষে একজনকে সনাক্ত করার জন্য আপনার ব্যথা করা উচিত।
পরিবর্তে একটি ব্যাকটিক (~ কীতে) ব্যবহার করুন;
`O'Brien`