Oracle PLSQL रिकॉर्ड
- PLSQL रिकॉर्ड समग्र डेटाटाइप हैं। यह फ़ील्ड के रूप में संबंधित डेटा आइटम्स का एक समूह है, प्रत्येक का अपना नाम और डेटाटाइप है।
- पीएल/एसक्यूएल रिकॉर्ड एक डेटाबेस तालिका में एक पंक्ति की संरचना के समान होते हैं। रिकॉर्ड में प्रत्येक अदिश डेटा प्रकार का एक मान होता है।
- एक रिकॉर्ड में किसी भी अदिश, PL/SQL रिकॉर्ड, या PL/SQL तालिका प्रकार के घटक होते हैं।
- उन्हें एकल इकाई के रूप में हेरफेर किया जा सकता है। रिकॉर्ड में जितनी आवश्यकता हो उतने फ़ील्ड हो सकते हैं।
Oracle PLSQL रिकॉर्ड कैसे घोषित करें
( A)उपयोगकर्ता परिभाषित PLSQL रिकॉर्ड
DECLARE TYPE employee_record_type IS RECORD (emp_id NUMBER(10) NOT NULL, dept_no dept.deptno%TYPE, nаme varchar2(20), hire_dаte DATE := SYSDATE Last_name varchar2(20) ); employee_record employee_record_type;
(1) रिकॉर्ड के लिए कोई पूर्व-परिभाषित डेटाटाइप नहीं हैं क्योंकि स्केलर डेटाटाइप के लिए हैं। तो आपको पहले बनाना होगा और फिर असाइन करना होगा
(2) रिकॉर्ड में प्रत्येक फ़ील्ड का एक विशिष्ट नाम और विशिष्ट डेटाटाइप होता है
(3) % प्रकार एक चर घोषित करने के लिए प्रयोग किया जाता है जो एक निर्दिष्ट तालिका के कॉलम के समान प्रकार का होता है।
(4) हम TYPE का उपयोग करते हैं। . . अपना खुद का रिकॉर्ड प्रकार बनाने के लिए रिकॉर्ड स्टेटमेंट तब होता है जब आपके रिकॉर्ड के एक क्षेत्र को पीएल/एसक्यूएल-विशिष्ट प्रकार, जैसे बूलियन की आवश्यकता होती है। यदि आप %ROWTYPE का उपयोग करते हैं, तो सभी क्षेत्रों के डेटाटाइप SQL प्रकारों के लिए सीमित होंगे
(5) रिकॉर्ड, स्वयं, PL/SQL-विशिष्ट डेटाटाइप हैं, इसलिए उपयोगकर्ता-परिभाषित रिकॉर्ड प्रकारों की एक और अच्छी विशेषता यह है कि आप रिकॉर्ड प्रकार को दूसरे में फ़ील्ड के रूप में परिभाषित कर सकते हैं रिकॉर्ड प्रकार
DECLARE TYPE emp_phone IS RECORD ( Stdcode PLS_INTEGER, phn_number PLS_INTEGER, extension PLS_INTEGER ); TYPE contact_phone IS RECORD ( day_phone# emp_phone, eve_phone# emp_phone, cell_phone# emp_phone ); sales_rep contact_phone;
बी) हम . को भी परिभाषित कर सकते हैं तालिका पंक्ति प्रकार के रूप में रिकॉर्ड करें
DECLARE sales_data_rec apps.sales_data%ROWTYPE; |
1) यह हमें तालिका या दृश्य में कॉलम के संग्रह के आधार पर एक रिकॉर्ड घोषित करने की अनुमति देता है
2) हम इसे घोषित करने के लिए डेटाबेस तालिका के साथ %ROWTYPE उपसर्ग का उपयोग करते हैं
3) रिकॉर्ड में फ़ील्ड तालिका के कॉलम से अपना नाम और डेटाटाइप लेते हैं
सी) हम एक रिकॉर्ड घोषित करने के लिए %ROWTYPE का भी उपयोग कर सकते हैं जिसमें एक कर्सर में एक सेलेक्ट स्टेटमेंट के समान संरचना होती है।
यह विशेष रूप से किसी तालिका से स्तंभों का सबसेट या एकाधिक तालिकाओं से स्तंभों को लाने के लिए उपयोगी है।
DECLARE CURSOR emp_cur IS SELECT lastname, age,firstname FROM employees; l_employee emp_cur%ROWTYPE;
जब भी आप किसी कर्सर से PL/SQL वेरिएबल में डेटा ला रहे हों, तो आपको उस कर्सर के आधार पर %ROWTYPE के साथ एक रिकॉर्ड घोषित करना चाहिए और उसे उस रिकॉर्ड में लाना चाहिए। इस तरह, जब और यदि कर्सर की चयन सूची बदलती है, तो रिकॉर्ड में संख्या और प्रकार के फ़ील्ड तदनुसार बदल जाएंगे और सब कुछ सिंक में रहेगा।
Oracle PLSQL रिकॉर्ड में मान कैसे पास करें
वाक्यविन्यास | उपयोग |
rec_name.col_name :=value; | किसी रिकॉर्ड के विशिष्ट कॉलम को सीधे मान निर्दिष्ट करने के लिए। |
rec_name.column_name :=value; | यदि रिकॉर्ड %ROWTYPE का उपयोग करके घोषित किया गया है, तो किसी रिकॉर्ड के विशिष्ट कॉलम को सीधे मान निर्दिष्ट करने के लिए। |
तालिका_नाम से rec_name.col_name1, rec_name.col_name2 में कॉलम1, कॉलम2 का चयन करें [जहां खंड]; | डेटाबेस तालिका से रिकॉर्ड के प्रत्येक फ़ील्ड को मान निर्दिष्ट करने के लिए। |
तालिका_नाम से रिकॉर्ड_नाम में चयन करें [जहां खंड]; | डेटाबेस तालिका से रिकॉर्ड में सभी फ़ील्ड को मान निर्दिष्ट करने के लिए। |
variable_name :=record_name.col_name; | एक रिकॉर्ड कॉलम से एक मान प्राप्त करने के लिए और इसे एक चर के लिए निर्दिष्ट करने के लिए। |
आपको ये अन्य PLSQL पोस्ट पढ़नी चाहिए
Oracle PLSQL ब्लॉक संरचना और प्रकार
Oracle plsql साक्षात्कार प्रश्न
त्वरित Oracle sql और plsql ट्यूटोरियल