T-SQL দিয়ে XML ডেটা হ্যান্ডলিং

XML এবং JSON ডেটা ম্যানিপুলেশন - টি-এসকিউএল (T-SQL) - Database Tutorials

336

T-SQL (Transact-SQL) SQL Server এর জন্য একটি এক্সটেনশন, যা XML ডেটা হ্যান্ডলিংয়ের জন্য শক্তিশালী ফিচার প্রদান করে। SQL Server-এ XML ডেটা স্টোর করা, কুয়েরি করা, এবং ম্যানিপুলেট করার জন্য বিশেষ ফাংশন এবং মেথড রয়েছে। T-SQL এর মাধ্যমে আপনি সহজেই XML ডেটা রিড, লেখ, আপডেট, এবং প্রসেস করতে পারেন।

এখানে, XML ডেটা হ্যান্ডলিং এর জন্য T-SQL এর কিছু মূল ফিচার এবং উদাহরণ দেওয়া হলো।


1. XML ডেটা টাইপ

SQL Server তে XML ডেটা টাইপ ব্যবহার করা হয়, যা XML ডেটা রেকর্ড হিসেবে টেবিলের কলাম হিসেবে সংরক্ষণ করতে সক্ষম। আপনি যেকোনো টেবিলের কলামকে XML টাইপ সেট করতে পারেন।

XML কলাম তৈরি করা:

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    Name NVARCHAR(100),
    PersonalDetails XML
);

এখানে, PersonalDetails কলামটি XML ডেটা টাইপ হিসেবে সংরক্ষিত হবে।


2. XML ডেটা ইনসার্ট করা

XML ডেটা টেবিলে ইনসার্ট করতে হলে, আপনি XML ডেটা স্ট্রিং হিসেবে ইনসার্ট করতে পারেন।

XML ডেটা ইনসার্ট করা:

INSERT INTO Employees (EmployeeID, Name, PersonalDetails)
VALUES (1, 'John Doe', 
    '<Employee>
        <Age>35</Age>
        <Gender>Male</Gender>
        <Address>123 Main St, City, Country</Address>
    </Employee>');

এখানে PersonalDetails কলামে XML ডেটা ইনসার্ট করা হয়েছে, যা Employee এর ব্যক্তিগত তথ্য ধারণ করছে।


3. XML ডেটা রিড করা

XML ডেটা কুয়েরি করার জন্য XQuery ব্যবহার করা হয়, যা SQL Server এ XML ডেটা থেকে নির্দিষ্ট উপাদান বা তথ্য বের করতে সাহায্য করে।

XML ডেটা কুয়েরি করা:

SELECT EmployeeID, 
       Name, 
       PersonalDetails.value('(/Employee/Age)[1]', 'INT') AS Age,
       PersonalDetails.value('(/Employee/Gender)[1]', 'NVARCHAR(10)') AS Gender
FROM Employees
WHERE EmployeeID = 1;

এখানে, value() মেথড ব্যবহার করা হয়েছে XML ডেটা থেকে নির্দিষ্ট উপাদান (যেমন, Age এবং Gender) বের করার জন্য। (/Employee/Age)[1] XQuery দ্বারা XML ডেটার থেকে প্রথম Age ট্যাগের মান বের করা হচ্ছে।


4. XML ডেটা আপডেট করা

XML ডেটা আপডেট করার জন্য modify() মেথড ব্যবহার করা হয়, যা XML ডেটার মধ্যে নির্দিষ্ট উপাদান পরিবর্তন করতে সাহায্য করে।

XML ডেটা আপডেট করা:

UPDATE Employees
SET PersonalDetails.modify('replace value of (/Employee/Age/text())[1] with "36"')
WHERE EmployeeID = 1;

এখানে, modify() মেথড ব্যবহার করে Age উপাদানটির মান 36 দিয়ে আপডেট করা হয়েছে।


5. XML ডেটা ফর্ম্যাটিং এবং আউটপুট

T-SQL এর মাধ্যমে XML ডেটা আউটপুটকে XML ফরম্যাটে রূপান্তর করতে FOR XML ক্লজ ব্যবহার করা হয়। এটি কুয়েরির আউটপুটকে XML ডেটা হিসেবে রিটার্ন করে।

XML আউটপুট তৈরি করা:

SELECT EmployeeID, Name
FROM Employees
FOR XML PATH('Employee'), ROOT('Employees');

এখানে, FOR XML PATH ব্যবহার করে SQL আউটপুটকে XML ফরম্যাটে কনভার্ট করা হয়েছে এবং ROOT('Employees') ব্যবহার করে মূল ট্যাগ Employees যোগ করা হয়েছে।

আউটপুট হবে:

<Employees>
  <Employee>
    <EmployeeID>1</EmployeeID>
    <Name>John Doe</Name>
  </Employee>
</Employees>

6. XML ডেটা ফিল্টারিং

T-SQL তে XML ডেটা থেকে নির্দিষ্ট উপাদান বের করার জন্য nodes() এবং value() মেথড ব্যবহার করা হয়। nodes() একটি XML ডকুমেন্ট থেকে একাধিক নোড রিটার্ন করে এবং value() নির্দিষ্ট নোডের মান রিটার্ন করে।

XML ডেটা ফিল্টারিং এবং এক্সট্রাকশন:

DECLARE @xmlData XML
SET @xmlData = 
    '<Employees>
        <Employee>
            <EmployeeID>1</EmployeeID>
            <Name>John Doe</Name>
            <Age>35</Age>
        </Employee>
        <Employee>
            <EmployeeID>2</EmployeeID>
            <Name>Jane Smith</Name>
            <Age>28</Age>
        </Employee>
    </Employees>';

SELECT EmployeeData.Employee.value('(EmployeeID)[1]', 'INT') AS EmployeeID,
       EmployeeData.Employee.value('(Name)[1]', 'NVARCHAR(100)') AS Name
FROM @xmlData.nodes('/Employees/Employee') AS EmployeeData(Employee);

এখানে, nodes() ব্যবহার করে XML ডেটার Employee নোডগুলোর উপর কাজ করা হয়েছে, এবং value() দিয়ে নির্দিষ্ট উপাদান যেমন EmployeeID এবং Name বের করা হয়েছে।

আউটপুট:

EmployeeID | Name
-----------|----------------
1          | John Doe
2          | Jane Smith

7. XML ডেটা এবং SQL টেবিলের মধ্যে কনভার্সন

SQL Server তে XML ডেটা টেবিলের রেকর্ড হিসেবে স্টোর করতে বা XML ডেটাকে টেবিল ফরম্যাটে রূপান্তর করতে nodes(), value(), এবং query() মেথড ব্যবহার করা হয়।

XML থেকে SQL টেবিলে ডেটা ইনসার্ট করা:

DECLARE @xml XML
SET @xml = 
    '<Employees>
        <Employee>
            <EmployeeID>1</EmployeeID>
            <Name>John Doe</Name>
            <Age>35</Age>
        </Employee>
        <Employee>
            <EmployeeID>2</EmployeeID>
            <Name>Jane Smith</Name>
            <Age>28</Age>
        </Employee>
    </Employees>';

INSERT INTO Employees (EmployeeID, Name, Age)
SELECT
    EmployeeData.Employee.value('(EmployeeID)[1]', 'INT'),
    EmployeeData.Employee.value('(Name)[1]', 'NVARCHAR(100)'),
    EmployeeData.Employee.value('(Age)[1]', 'INT')
FROM @xml.nodes('/Employees/Employee') AS EmployeeData(Employee);

এখানে, XML ডেটা থেকে nodes()value() ব্যবহার করে টেবিলের কলামে ডেটা ইনসার্ট করা হয়েছে।


উপসংহার:

T-SQL দিয়ে XML ডেটা হ্যান্ডলিং খুবই শক্তিশালী এবং কার্যকরী হতে পারে। SQL Server এ XML ডেটা ইনসার্ট, আপডেট, রিড, এবং প্রক্রিয়া করার জন্য XML ডেটা টাইপ, XQuery, nodes(), value(), এবং modify() ফাংশন ব্যবহার করা হয়। T-SQL এর এই ক্ষমতা ব্যবহার করে আপনি আপনার ডেটাবেসে XML ডেটার মাধ্যমে আরও জটিল কুয়েরি এবং ডেটা প্রসেসিং করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...