PL/SQL स्वीकार्य पहचानकर्ता, चर और नामकरण परंपराएँ

⚡ स्मार्ट सारांश

PL/SQL आइडेंटिफ़ायर, PL/SQL ऑब्जेक्ट्स जैसे कि वैरिएबल, कॉन्स्टेंट, कर्सर और प्रोसीजर को दिए गए नाम होते हैं। ये नाम अक्षर से शुरू होने चाहिए, 30 अक्षरों के भीतर होने चाहिए, केस-इनसेंसिटिव होने चाहिए और वैरिएबल के लेवल और टाइप को दर्शाने वाले नामकरण नियमों का पालन करना चाहिए।

  • परिभाषा: एक पहचानकर्ता किसी भी PL/SQL ऑब्जेक्ट को नाम देता है, चाहे वह वेरिएबल हो, पैकेज हो या लेबल हो।
  • 📏 नियम: इसका प्रारंभ एक अक्षर से होना चाहिए, इसकी लंबाई अधिकतम 30 अक्षर होनी चाहिए और इसमें कोई रिक्त स्थान नहीं होना चाहिए।
  • 🔠 अनुमत चिह्न: किसी आइडेंटिफायर के अंदर डॉलर चिह्न, अंडरस्कोर और हैश की अनुमति है।
  • 🧭 नामकरण परंपरा: पहला अक्षर स्तर (P, L, G) को दर्शाता है और दूसरा अक्षर प्रकार (C, V, N, R, T) को दर्शाता है।
  • 📦 चर: एक वेरिएबल एक स्टोरेज एरिया से जुड़ा एक आइडेंटिफायर होता है, जिसे एक मान्य डेटा टाइप के साथ घोषित किया जाता है।
  • 📝 घोषणा: उपयोग से पहले डिक्लेरेटिव सेक्शन में वेरिएबल घोषित किए जाते हैं।
  • ➡️ कार्यभार: किसी मान को घोषणा के समय या बाद में := ऑपरेटर का उपयोग करके सेट किया जा सकता है।

PL/SQL पहचानकर्ताओं के नामकरण संबंधी नियम

PL/SQL पहचानकर्ता क्या हैं?

Identifiers PL/SQL में, पहचानकर्ता PL/SQL ऑब्जेक्ट को दिए गए नाम होते हैं। ऑब्जेक्ट एक स्थिरांक, चर, अपवाद, कर्सर, प्रक्रिया, फ़ंक्शन, पैकेज, ट्रिगर, ऑब्जेक्ट प्रकार, आरक्षित शब्द या लेबल हो सकता है। पहचानकर्ताओं में अक्षर, अंक, चिह्न, अंडरस्कोर आदि शामिल होते हैं। ये केस-संवेदनशील नहीं होते हैं और इनका आकार 30 वर्णों तक सीमित होता है।

PL/SQL पहचानकर्ताओं के गुण

PL/SQL पहचानकर्ताओं के मुख्य गुण यहां दिए गए हैं:

  • इसका पहला अक्षर होना चाहिए।
  • अधिकतम आकार 30 अक्षरों तक सीमित है।
  • इसमें रिक्त स्थान वर्ण नहीं हो सकते।
  • इसमें डॉलर चिह्न ('$'), अंडरस्कोर ('_') और हैश चिह्न ('#') शामिल हो सकते हैं।
  • यह केस-संवेदनशील नहीं है।

PL/SQL में नामकरण परंपराएँ

एक जटिल प्रोग्राम में, हमें कई पहचानकर्ताओं, जैसे कि चर और कर्सर, को शामिल करना पड़ सकता है। भ्रम से बचने और पठनीयता बढ़ाने के लिए, हमें कुछ नामकरण नियमों का पालन करना आवश्यक है।

PL/SQL में आमतौर पर उपयोग किए जाने वाले नामकरण नियम निम्नलिखित हैं।

पहला अक्षर वेरिएबल के घोषित स्तर को निर्दिष्ट करता है:

  • 'P' – पैरामीटर स्तर पर घोषित चर।
  • 'L' – स्थानीय ब्लॉक में घोषित चर।
  • 'G' – वैश्विक स्तर पर घोषित चर।

दूसरा अक्षर पहचानकर्ता के प्रकार को निर्दिष्ट करता है:

  • 'C' – कर्सर पहचानकर्ता।
  • 'V' – VARCHAR और CHAR डेटा प्रकार।
  • 'N' – NUMBER डेटा प्रकार।
  • 'आर' - रिकॉर्ड प्रकार.
  • 'T' – टेबल का प्रकार।

नीचे PL/SQL में उचित नामकरण नियमों के कुछ उदाहरण दिए गए हैं:

  • Lv_name – VARCHAR/CHAR डेटा प्रकार का स्थानीय स्तर का चर।
  • Pc_num – पैरामीटर स्तर कर्सर पहचानकर्ता।
  • Gn_user_id – वैश्विक स्तर का चर संख्यात्मक डेटा प्रकार.

PL/SQL चर

चर PL/SQL में, प्रोग्राम द्वारा उपयोग किए जा सकने वाले स्टोरेज एरिया को दिए गए बुनियादी पहचानकर्ता होते हैं। वेरिएबल ऐसी जगहें होती हैं जहाँ उपयोगकर्ता मान संग्रहीत कर सकता है। उपयोग से पहले इन वेरिएबल्स को एक मान्य PL/SQL डेटा प्रकार से संबद्ध करना आवश्यक है। डेटा प्रकार इन वेरिएबल्स के लिए स्टोरेज और प्रोसेसिंग विधियों को परिभाषित करते हैं।

PL/SQL चर घोषणा

डेटा हेरफेर या प्रसंस्करण के दौरान डेटा को संग्रहीत करने के लिए मुख्य रूप से चरों का उपयोग किया जाता है। इनका उपयोग करने से पहले, इन्हें कोड के घोषणात्मक भाग के भीतर घोषित किया जाना आवश्यक है। PL/SQL ब्लॉक.

किसी वेरिएबल को घोषित करना, प्लेसहोल्डर को एक नाम देने और उसे एक मान्य डेटा प्रकार से जोड़ने की प्रक्रिया है।

वाक्य - विन्यास

<variable_name> <datatype>;

ऊपर दिया गया सिंटैक्स दर्शाता है कि डिक्लेरेटिव सेक्शन में वेरिएबल को कैसे घोषित किया जाता है।

PL/SQL वेरिएबल्स में डेटा संग्रहण

एक बार वेरिएबल घोषित हो जाने पर, वह परिभाषित प्रकार का डेटा रखने के लिए तैयार हो जाता है। मान निष्पादन के दौरान या घोषणा के समय ही निर्धारित किए जा सकते हैं। मान एक लिटरल या किसी अन्य वेरिएबल का मान हो सकता है। एक बार मान निर्धारित हो जाने पर, यह उस वेरिएबल के लिए आवंटित मेमोरी स्पेस में संग्रहित हो जाता है।

वाक्य - विन्यास

<variable_name> <datatype> := <default_value>;

ऊपर दिया गया सिंटैक्स दर्शाता है कि डिक्लेरेटिव सेक्शन में वेरिएबल को कैसे घोषित किया जाता है और उसे मान कैसे असाइन किया जाता है।

<variable_name> <datatype>;
<variable_name> := <value>;

ऊपर दिया गया सिंटैक्स दर्शाता है कि पहले से घोषित वेरिएबल को मान कैसे असाइन किया जाता है।

उदाहरण 1: इस उदाहरण में, हम वेरिएबल घोषित करना और उसे मान असाइन करना सीखते हैं। हम निम्नलिखित प्रोग्राम में वेरिएबल का उपयोग करके 'GURU99' प्रिंट करते हैं।

PL/SQL वेरिएबल घोषणा और असाइनमेंट का उदाहरण

DECLARE
lv_name VARCHAR2(50);
lv_name_2 VARCHAR2(50) := 'GURU99';
BEGIN
lv_name := lv_name_2;
dbms_output.put_line(lv_name);
END;
/

Code व्याख्या

  • Code पंक्ति 2: 50 आकार के VARCHAR2 श्रेणी के 'lv_name' नामक चर की घोषणा की जा रही है।
  • Code पंक्ति 3: 'lv_name_2' नामक एक वेरिएबल को VARCHAR2 श्रेणी में 50 आकार के साथ घोषित करना और 'GURU99' लिटरल का उपयोग करके डिफ़ॉल्ट मान निर्दिष्ट करना।
  • Code पंक्ति 5: 'lv_name' नामक वेरिएबल का मान 'lv_name_2' नामक वेरिएबल से लिया जाता है।
  • Code पंक्ति 6: 'lv_name' नामक चर के संग्रहित मान को प्रिंट करना।

उपरोक्त कोड को निष्पादित करने पर आपको निम्नलिखित आउटपुट प्राप्त होगा।

उत्पादन

गुरु99

अक्सर पूछे जाने वाले प्रश्न

इसका प्रारंभ अक्षर से होना चाहिए, इसकी लंबाई अधिकतम 30 अक्षर होनी चाहिए, इसमें कोई रिक्त स्थान नहीं होना चाहिए, और इसमें केवल अक्षर, अंक और डॉलर, अंडरस्कोर और हैश चिह्नों का ही प्रयोग होना चाहिए। पहचानकर्ता अक्षर-संवेदनशील नहीं होते हैं।

प्रीफ़िक्स से स्कोप और टाइप का स्पष्ट पता चल जाता है, इसलिए Lv_name को लोकल varchar वेरिएबल के रूप में पढ़ा जा सकता है। बड़े कोड ब्लॉक में इससे भ्रम कम होता है और कोड को व्यवस्थित रखना आसान हो जाता है।

:= ऑपरेटर किसी वेरिएबल को मान असाइन करता है। केवल एक = का उपयोग शर्तों के भीतर तुलना के लिए किया जाता है। इन दोनों को मिलाना शुरुआती लोगों की एक आम गलती है जिससे कंपाइल-टाइम विफलता हो सकती है।

जी हां। एआई किसी पैकेज को स्कैन कर सकता है, उन पहचानकर्ताओं को चिह्नित कर सकता है जो निर्धारित उपसर्गों का उल्लंघन करते हैं, और नाम बदलने का सुझाव दे सकता है। यह नए वेरिएबल्स के स्कोप और प्रकार के आधार पर उनके लिए सुसंगत नाम भी उत्पन्न कर सकता है।

नहीं। lv_name और LV_NAME एक ही पहचानकर्ता को संदर्भित करते हैं। केवल एकल उद्धरण चिह्नों में लिखे स्ट्रिंग लिटरल ही केस-सेंसिटिव होते हैं, इसलिए पठनीयता के लिए एक नियम बनाया गया है, न कि इसलिए कि कंपाइलर को इसकी आवश्यकता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: