PL/SQL দিয়ে XML ডেটা হ্যান্ডলিং

PL/SQL এবং XML/JSON Integration - পিএল/এসকিউএল (PL/SQL) - Database Tutorials

342

PL/SQL-এ XML ডেটা হ্যান্ডলিং একটি গুরুত্বপূর্ণ বিষয়, কারণ অনেক সময় ডেটাবেসে XML ফরম্যাটে ডেটা স্টোর বা প্রসেস করা প্রয়োজন হয়। Oracle ডেটাবেস XML ডেটা হ্যান্ডলিং-এর জন্য কিছু বিশেষ ফিচার এবং ফাংশন প্রদান করে, যা XML ডেটার সাথে কার্যকরীভাবে কাজ করতে সাহায্য করে।

Oracle-এ XML ডেটা স্টোর করার জন্য XMLType ডেটা টাইপ ব্যবহার করা হয়। এই ডেটা টাইপটি XML ডেটা ম্যানিপুলেট, পার্স, এবং স্টোর করার সুবিধা দেয়।

XML ডেটার সাথে কাজ করার জন্য PL/SQL ফিচারসমূহ

  1. XMLType ডেটা টাইপ
  2. XMLTable ফাংশন
  3. XMLParse, XMLSerialize, XMLExists ফাংশন
  4. XPath কুয়েরি সাপোর্ট
  5. XQuery কুয়েরি সাপোর্ট

1. XMLType ডেটা টাইপ ব্যবহার

Oracle-এ XMLType হল একটি বিশেষ ডেটা টাইপ যা XML ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। এটি XML ডেটাকে পার্স, স্টোর এবং প্রসেস করার জন্য সুবিধা প্রদান করে।

XMLType ডেটা তৈরি করা:

DECLARE
   xml_data XMLTYPE;
BEGIN
   -- XML ডেটা তৈরি এবং XMLType ভেরিয়েবলে সেট করা
   xml_data := XMLTYPE('<employee><id>101</id><name>John Doe</name><salary>50000</salary></employee>');
   
   -- XML ডেটা আউটপুট প্রদর্শন
   DBMS_OUTPUT.PUT_LINE(xml_data.getStringVal());
END;

এখানে, XMLTYPE ব্যবহার করে একটি XML ডেটা স্ট্রিং তৈরি করা হয়েছে এবং তারপর সেটি আউটপুট হিসাবে দেখানো হয়েছে।


2. XMLTable ব্যবহার

XMLTable একটি শক্তিশালী ফাংশন যা XML ডেটাকে relational টেবিল ফরম্যাটে কনভার্ট করে। এটি XML ডেটার উপর SQL কুয়েরি করার সুবিধা দেয়।

XMLTable উদাহরণ:

ধরা যাক, আপনার কাছে একটি XML ডেটা রয়েছে যা কিছু কর্মচারী সম্পর্কে তথ্য ধারণ করে, এবং আপনি এই XML ডেটা থেকে তথ্য বের করতে চান।

DECLARE
   xml_data XMLTYPE;
BEGIN
   -- XML ডেটা তৈরি
   xml_data := XMLTYPE('<employees><employee><id>101</id><name>John Doe</name><salary>50000</salary></employee>
                         <employee><id>102</id><name>Jane Smith</name><salary>60000</salary></employee></employees>');
   
   -- XMLTable ব্যবহার করে XML ডেটা থেকে তথ্য বের করা
   FOR rec IN (
      SELECT * 
      FROM XMLTABLE(
            '/employees/employee' 
            PASSING xml_data
            COLUMNS 
                emp_id NUMBER PATH 'id',
                emp_name VARCHAR2(50) PATH 'name',
                emp_salary NUMBER PATH 'salary'
      )
   ) LOOP
      DBMS_OUTPUT.PUT_LINE('Employee ID: ' || rec.emp_id || ', Name: ' || rec.emp_name || ', Salary: ' || rec.emp_salary);
   END LOOP;
END;

এখানে, XMLTable ব্যবহার করে XML ডেটার মধ্যে <employee> এলিমেন্টের সব কর্মচারী তথ্য রিলেশনাল ফরম্যাটে বের করা হয়েছে এবং তা আউটপুট হিসেবে প্রদর্শিত হয়েছে।


3. XMLParse এবং XMLSerialize

Oracle PL/SQL-এ XMLParse এবং XMLSerialize ফাংশনগুলি XML ডেটার পার্সিং এবং সিরিয়ালাইজেশন (স্টোর করার জন্য ফরম্যাটে রূপান্তর) করতে ব্যবহৃত হয়।

XMLParse উদাহরণ:

DECLARE
   xml_data XMLTYPE;
BEGIN
   -- XML স্ট্রিং পার্স করা
   xml_data := XMLTYPE('<employee><id>101</id><name>John Doe</name><salary>50000</salary></employee>');
   
   -- XML ডেটার মান বের করা
   DBMS_OUTPUT.PUT_LINE(xml_data.getStringVal());
END;

XMLSerialize উদাহরণ:

XMLSerialize ব্যবহার করে XML ডেটাকে স্টোর করার জন্য উপযুক্ত ফরম্যাটে কনভার্ট করা হয়।

DECLARE
   xml_data XMLTYPE;
   serialized_data VARCHAR2(4000);
BEGIN
   -- XML ডেটা তৈরি
   xml_data := XMLTYPE('<employee><id>101</id><name>John Doe</name><salary>50000</salary></employee>');
   
   -- XMLSerialize ব্যবহার করে XML ডেটা সিরিয়ালাইজ করা
   serialized_data := xml_data.getStringVal();
   
   -- সিরিয়ালাইজড ডেটা আউটপুট
   DBMS_OUTPUT.PUT_LINE(serialized_data);
END;

4. XMLExists ফাংশন

XMLExists একটি ফাংশন যা চেক করে যে একটি নির্দিষ্ট XPath এক্সপ্রেশন XML ডেটায় বিদ্যমান কিনা। এটি একটি BOOLEAN মান রিটার্ন করে।

XMLExists উদাহরণ:

DECLARE
   xml_data XMLTYPE;
BEGIN
   -- XML ডেটা তৈরি
   xml_data := XMLTYPE('<employee><id>101</id><name>John Doe</name><salary>50000</salary></employee>');
   
   -- XMLExists ব্যবহার করে চেক করা
   IF XMLExists('declare default element namespace "http://www.w3.org/2001/XMLSchema-instance"; 
                 /employee/name[text()="John Doe"]', xml_data) THEN
      DBMS_OUTPUT.PUT_LINE('Employee John Doe exists.');
   ELSE
      DBMS_OUTPUT.PUT_LINE('Employee John Doe does not exist.');
   END IF;
END;

এখানে, XPath এক্সপ্রেশন ব্যবহার করে চেক করা হচ্ছে, কর্মচারী "John Doe" ডেটা XML-এ উপস্থিত কিনা।


5. XML ডেটার ইনসার্ট ও আপডেট

XML ডেটা ইনসার্ট বা আপডেট করতে XMLType-এর জন্য বিভিন্ন মেথড রয়েছে, যেমন insertChildXML, updateXML ইত্যাদি।

XML ইনসার্ট উদাহরণ:

DECLARE
   xml_data XMLTYPE;
BEGIN
   -- XML ডেটা তৈরি
   xml_data := XMLTYPE('<employees><employee><id>101</id><name>John Doe</name><salary>50000</salary></employee></employees>');
   
   -- নতুন employee ইনসার্ট করা
   xml_data := xml_data.insertChildXML('employees', '<employee><id>102</id><name>Jane Smith</name><salary>60000</salary></employee>');
   
   -- আপডেটেড XML দেখানো
   DBMS_OUTPUT.PUT_LINE(xml_data.getStringVal());
END;

এখানে, insertChildXML মেথড ব্যবহার করে নতুন কর্মচারী তথ্য XML ডেটায় যোগ করা হয়েছে।


সারাংশ:

PL/SQL-এ XML ডেটা হ্যান্ডলিং একটি শক্তিশালী টুল যা ডেটাবেসে XML ডেটার সাথে কার্যকরীভাবে কাজ করতে সাহায্য করে। XMLType ডেটা টাইপের মাধ্যমে XML ডেটা তৈরি, পার্স, এবং ম্যানিপুলেশন করা সম্ভব। এছাড়া XMLTable, XMLParse, XMLSerialize, এবং XMLExists ফাংশন ব্যবহার করে XML ডেটার সাথে বিভিন্ন কার্যক্রম সম্পন্ন করা যায়।

এটি আপনাকে বিভিন্ন ফরম্যাটে ডেটা স্টোর, প্রসেস, এবং এক্সপোর্ট করতে সাহায্য করে, যেমন ওয়েব সেবা বা অন্য সিস্টেমে ডেটা প্রেরণের জন্য।

Content added By
Promotion

Are you sure to start over?

Loading...