DBMS — MCQ Practice

Hindi aur English dono mein practice karo — click karo answer check karne ke liye

📚 139 Questions 🌐 Hindi + English ✅ Free
भाषा / Language:
139 questions
91
EN + हिं Easy
GB What is the NOCOPY hint in PL/SQL parameter passing and when should it be used?
IN PL/SQL पैरामीटर पासिंग में NOCOPY संकेत क्या है और इसका उपयोग कब किया जाना चाहिए?
A
A hint that prevents trigger copying of row values एक संकेत जो पंक्ति मानों की ट्रिगर प्रतिलिपि को रोकता है
B
A hint to avoid copying data to disk डिस्क पर डेटा कॉपी करने से बचने का संकेत
C
A PL/SQL performance hint that passes OUT/IN OUT parameters by reference instead of by default copy (pass by value) avoiding expensive copying of large collections/records; should be used when: parameters are large (LOBs big collections) and the overhead of copying would be significant एक पीएल/एसक्यूएल प्रदर्शन संकेत जो बड़े संग्रह/अभिलेखों की महंगी प्रतिलिपि से बचने के लिए डिफ़ॉल्ट प्रतिलिपि (मूल्य से पास) के बजाय संदर्भ द्वारा आउट/इन आउट पैरामीटर पास करता है; इसका उपयोग तब किया जाना चाहिए जब: पैरामीटर बड़े हों (एलओबी बड़े संग्रह) और प्रतिलिपि बनाने का ओवरहेड महत्वपूर्ण होगा
D
A hint to avoid copying package variable values पैकेज वैरिएबल मानों की प्रतिलिपि बनाने से बचने का संकेत
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Default OUT param: entire collection/record copied in at start and copied out on return (expensive for large data). NOCOPY hint: passes reference directly (no copy). PROCEDURE p(p_data IN OUT NOCOPY large_collection_type). Warning: if procedure raises exception with NOCOPY parameter may be partially modified (no rollback of param changes). Trade-off: performance vs. atomicity.
व्याख्या (हिन्दी) डिफ़ॉल्ट आउट पैरामीटर: संपूर्ण संग्रह/रिकॉर्ड प्रारंभ में कॉपी किया गया और वापसी पर कॉपी किया गया (बड़े डेटा के लिए महंगा)। NOCOPY संकेत: सीधे संदर्भ पास करता है (कोई प्रतिलिपि नहीं)। प्रक्रिया पी(पी_डेटा इन आउट नोकॉपी लार्ज_कलेक्शन_टाइप)। चेतावनी: यदि प्रक्रिया NOCOPY पैरामीटर के साथ अपवाद उठाती है तो आंशिक रूप से संशोधित किया जा सकता है (परम परिवर्तनों का कोई रोलबैक नहीं)। ट्रेड-ऑफ़: प्रदर्शन बनाम परमाणुता।
92
EN + हिं Easy
GB What is the cursor FOR loop in PL/SQL and what makes it superior to manual OPEN-FETCH-CLOSE?
IN PL/SQL में लूप के लिए कर्सर क्या है और क्या चीज़ इसे मैन्युअल OPEN-FETCH-CLOSE से बेहतर बनाती है?
A
Cursor FOR loops do not support WHERE clauses लूप के लिए कर्सर WHERE क्लॉज का समर्थन नहीं करता है
B
A cursor FOR loop automatically handles OPEN FETCH and CLOSE operations and declares an implicit record variable reducing boilerplate code and eliminating the risk of forgetting to close cursors; also allows implicit cursor (inline SELECT) without a named cursor declaration लूप के लिए एक कर्सर स्वचालित रूप से ओपन फ़ेच और क्लोज़ संचालन को संभालता है और बॉयलरप्लेट कोड को कम करने और कर्सर को बंद करने की भूल के जोखिम को समाप्त करने के लिए एक अंतर्निहित रिकॉर्ड वैरिएबल घोषित करता है; नामित कर्सर घोषणा के बिना अंतर्निहित कर्सर (इनलाइन चयन) की भी अनुमति देता है
C
Cursor FOR loops can only process 100 rows लूप्स के लिए कर्सर केवल 100 पंक्तियों को प्रोसेस कर सकता है
D
Cursor FOR loops are slower than manual cursor handling कर्सर फॉर लूप्स मैन्युअल कर्सर हैंडलिंग की तुलना में धीमे हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) FOR rec IN (SELECT * FROM employees WHERE dept=Sales) LOOP ... process rec.name, rec.salary ... END LOOP. Automatically: opens cursor, fetches each row into rec, exits when done, closes cursor. Cannot forget CLOSE. Cleaner code. Also works with named cursors: FOR rec IN my_cursor LOOP.
व्याख्या (हिन्दी) भर्ती के लिए (कर्मचारियों से चयन करें जहां विभाग=बिक्री) लूप... प्रक्रिया भर्ती नाम, भर्ती वेतन... अंत लूप। स्वचालित रूप से: कर्सर खोलता है, प्रत्येक पंक्ति को रिक में लाता है, पूरा होने पर बाहर निकलता है, कर्सर बंद कर देता है। बंद करना नहीं भूल सकता. क्लीनर कोड. नामित कर्सर के साथ भी काम करता है: FOR rec IN my_cursor LOOP।
93
EN + हिं Medium
GB What is the DETERMINISTIC clause on a PL/SQL function and how does it affect performance?
IN पीएल/एसक्यूएल फ़ंक्शन पर नियतात्मक खंड क्या है और यह प्रदर्शन को कैसे प्रभावित करता है?
A
A clause indicating that the function always returns the same result for the same input parameters allowing Oracle to: cache the result and skip re-execution for duplicate inputs within a SQL statement enable use in function-based indexes and skip re-execution for same inputs in a query एक खंड जो दर्शाता है कि फ़ंक्शन हमेशा समान इनपुट पैरामीटर के लिए समान परिणाम देता है, ओरेकल को अनुमति देता है: परिणाम को कैश करें और SQL स्टेटमेंट के भीतर डुप्लिकेट इनपुट के लिए पुन: निष्पादन को छोड़ें, फ़ंक्शन-आधारित इंडेक्स में उपयोग को सक्षम करें और एक क्वेरी में समान इनपुट के लिए पुन: निष्पादन को छोड़ें।
B
A clause that makes the function execute faster by default एक क्लॉज़ जो फ़ंक्शन को डिफ़ॉल्ट रूप से तेज़ी से निष्पादित करता है
C
A clause that prevents the function from changing एक खंड जो फ़ंक्शन को बदलने से रोकता है
D
A clause that prevents parallel execution of the function एक खंड जो फ़ंक्शन के समानांतर निष्पादन को रोकता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) DETERMINISTIC: CREATE FUNCTION calc(x NUMBER) RETURN NUMBER DETERMINISTIC IS... If a SQL query calls calc(col) and col has repeated values, Oracle calls calc() only once per unique value (result cached for duplicates). Required for: function-based indexes (Oracle must know result is stable). Warning: must truly be deterministic or cache returns wrong results.
व्याख्या (हिन्दी) नियतात्मक: क्रिएट फ़ंक्शन कैल्क(x नंबर) रिटर्न नंबर नियतात्मक है... यदि एक SQL क्वेरी कैल्क(col) को कॉल करती है और col में बार-बार मान होते हैं, तो Oracle अद्वितीय मान के अनुसार केवल एक बार कैल्क() को कॉल करता है (डुप्लिकेट के लिए परिणाम कैश किया जाता है)। इसके लिए आवश्यक: फ़ंक्शन-आधारित इंडेक्स (ओरेकल को पता होना चाहिए कि परिणाम स्थिर है)। चेतावनी: वास्तव में नियतिवादी होना चाहिए अन्यथा कैश गलत परिणाम देगा।
94
EN + हिं Medium
GB What is the RESULT_CACHE clause on a PL/SQL function and how does it differ from DETERMINISTIC?
IN PL/SQL फ़ंक्शन पर RESULT_CACHE क्लॉज क्या है और यह DETERMINISTIC से कैसे भिन्न है?
A
RESULT_CACHE is only for DML functions RESULT_CACHE केवल DML फ़ंक्शंस के लिए है
B
They are identical features वे समान विशेषताएं हैं
C
RESULT_CACHE: Oracle caches function results in the SGA result cache shared across sessions with automatic invalidation when dependent tables change. DETERMINISTIC: hints to Oracle that results can be cached within a single SQL statement/query no cross-session sharing no automatic invalidation on table changes RESULT_CACHE: Oracle कैश फ़ंक्शन का परिणाम SGA परिणाम कैश में होता है जो आश्रित तालिकाओं में परिवर्तन होने पर स्वचालित अमान्यता के साथ सत्रों में साझा किया जाता है। नियतात्मक: ओरेकल को संकेत देता है कि परिणामों को एकल एसक्यूएल कथन/क्वेरी के भीतर कैश किया जा सकता है, कोई क्रॉस-सत्र साझा नहीं किया जा सकता है, तालिका परिवर्तनों पर कोई स्वचालित अमान्यता नहीं है
D
DETERMINISTIC provides cross-session caching नियतात्मक क्रॉस-सत्र कैशिंग प्रदान करता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) RESULT_CACHE: results stored in SGA, shared across ALL sessions, automatically invalidated when tables the function reads change. Better for: expensive functions reading stable reference data. DETERMINISTIC: within-statement optimization only, no SGA storage. RESULT_CACHE subsumes DETERMINISTIC benefits and adds cross-session, cross-call caching.
व्याख्या (हिन्दी) RESULT_CACHE: SGA में संग्रहीत परिणाम, सभी सत्रों में साझा किए जाते हैं, जब फ़ंक्शन पढ़ने वाली तालिकाएं बदलती हैं तो स्वचालित रूप से अमान्य हो जाती हैं। इसके लिए बेहतर: स्थिर संदर्भ डेटा पढ़ने वाले महंगे फ़ंक्शन। नियतात्मक: केवल कथन के भीतर अनुकूलन, कोई SGA भंडारण नहीं। RESULT_CACHE DETERMINISTIC लाभों को सम्मिलित करता है और क्रॉस-सत्र, क्रॉस-कॉल कैशिंग जोड़ता है।
95
EN + हिं Medium
GB What is the DBMS_CRYPTO package in PL/SQL and how does it support application-level encryption?
IN PL/SQL में DBMS_CRYPTO पैकेज क्या है और यह एप्लिकेशन-स्तरीय एन्क्रिप्शन का समर्थन कैसे करता है?
A
A PL/SQL package providing cryptographic functions: symmetric encryption/decryption (AES 3DES DES) hashing (SHA-1 SHA-256 MD5) MAC generation and random key/data generation - enabling column-level application encryption separate from TDE क्रिप्टोग्राफिक फ़ंक्शन प्रदान करने वाला एक पीएल/एसक्यूएल पैकेज: सममित एन्क्रिप्शन/डिक्रिप्शन (एईएस 3डीईएस डीईएस) हैशिंग (एसएचए-1 एसएचए-256 एमडी5) मैक पीढ़ी और यादृच्छिक कुंजी/डेटा पीढ़ी - टीडीई से अलग कॉलम-स्तरीय एप्लिकेशन एन्क्रिप्शन को सक्षम करना
B
A package for database-level encryption only केवल डेटाबेस-स्तरीय एन्क्रिप्शन के लिए एक पैकेज
C
A package that replaces TDE एक पैकेज जो TDE को प्रतिस्थापित करता है
D
A package only for hashing passwords केवल हैशिंग पासवर्ड के लिए एक पैकेज
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) DBMS_CRYPTO: DBMS_CRYPTO.ENCRYPT(data, DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5, key). DBMS_CRYPTO.HASH(data, DBMS_CRYPTO.HASH_SHA256). Use for: encrypting specific sensitive columns in application code (key management in app layer), hashing passwords (use HASH_SHA256 + salt), MAC for data integrity verification.
व्याख्या (हिन्दी) DBMS_CRYPTO: DBMS_CRYPTO.ENCRYPT(डेटा, DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5, कुंजी)। DBMS_CRYPTO.HASH(डेटा, DBMS_CRYPTO.HASH_SHA256)। इसके लिए उपयोग करें: एप्लिकेशन कोड में विशिष्ट संवेदनशील कॉलम एन्क्रिप्ट करना (ऐप लेयर में कुंजी प्रबंधन), हैशिंग पासवर्ड (HASH_SHA256 + नमक का उपयोग करें), डेटा अखंडता सत्यापन के लिए MAC।
96
EN + हिं Easy
GB What is the DBMS_OUTPUT package and what are its limitations in production systems?
IN DBMS_OUTPUT पैकेज क्या है और उत्पादन प्रणालियों में इसकी सीमाएँ क्या हैं?
A
A production logging framework for Oracle databases Oracle डेटाबेस के लिए एक उत्पादन लॉगिंग ढाँचा
B
A package for formatting database output डेटाबेस आउटपुट को फ़ॉर्मेट करने के लिए एक पैकेज
C
A package for writing debug/informational messages to a server-side buffer that can be displayed by client tools like SQL Plus; limitations: buffer has a maximum size (default 20000 bytes max 1000000) messages only displayed AFTER the PL/SQL block completes (no streaming) not suitable for real-time monitoring and adds overhead सर्वर-साइड बफ़र पर डिबग/सूचना संदेश लिखने के लिए एक पैकेज जिसे SQL प्लस जैसे क्लाइंट टूल द्वारा प्रदर्शित किया जा सकता है; सीमाएँ: बफ़र का अधिकतम आकार होता है (डिफ़ॉल्ट 20000 बाइट्स अधिकतम 1000000) संदेश केवल पीएल/एसक्यूएल ब्लॉक पूरा होने के बाद प्रदर्शित होते हैं (कोई स्ट्रीमिंग नहीं) वास्तविक समय की निगरानी के लिए उपयुक्त नहीं है और ओवरहेड जोड़ता है
D
A package for sending output to external files बाहरी फ़ाइलों को आउटपुट भेजने के लिए एक पैकेज
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) DBMS_OUTPUT limitations: buffer size limit (SET SERVEROUTPUT ON SIZE 1000000). Output only visible after completion (useless for long-running batch monitoring). Overhead: extra memory. Alternative for production logging: UTL_FILE (write to OS files), application tables/log tables, Oracle Database Action tracking, autonomous transaction log inserts.
व्याख्या (हिन्दी) DBMS_OUTPUT सीमाएँ: बफ़र आकार सीमा (आकार 1000000 पर सर्वरआउटपुट सेट करें)। आउटपुट केवल पूरा होने के बाद दिखाई देता है (लंबे समय तक चलने वाले बैच की निगरानी के लिए बेकार)। ओवरहेड: अतिरिक्त मेमोरी. उत्पादन लॉगिंग के लिए विकल्प: UTL_FILE (OS फ़ाइलों पर लिखें), एप्लिकेशन टेबल/लॉग टेबल, Oracle डेटाबेस एक्शन ट्रैकिंग, स्वायत्त लेनदेन लॉग इंसर्ट।
97
EN + हिं Medium
GB What is the difference between static SQL and dynamic SQL in PL/SQL and when is each preferred?
IN पीएल/एसक्यूएल में स्थिर एसक्यूएल और डायनेमिक एसक्यूएल के बीच क्या अंतर है और प्रत्येक को कब प्राथमिकता दी जाती है?
A
Dynamic SQL executes faster because it is optimized at runtime डायनामिक SQL तेजी से निष्पादित होता है क्योंकि यह रनटाइम पर अनुकूलित होता है
B
Static SQL: SQL statements written directly in PL/SQL code at compile time (SELECT col INTO var FROM t WHERE id=x); validated and optimized at compile time gives better performance and error detection. Dynamic SQL (EXECUTE IMMEDIATE NDS): SQL constructed as strings at runtime; necessary when table/column names or statement type are not known until runtime but has higher overhead and risk of SQL injection if not using bind variables स्टेटिक एसक्यूएल: संकलन समय पर एसक्यूएल स्टेटमेंट सीधे पीएल/एसक्यूएल कोड में लिखा जाता है (कॉल इनटू वेर फ्रॉम टी व्हेयर आईडी=एक्स); संकलन समय पर सत्यापित और अनुकूलित बेहतर प्रदर्शन और त्रुटि का पता लगाता है। गतिशील एसक्यूएल (तत्काल एनडीएस निष्पादित करें): एसक्यूएल रनटाइम पर स्ट्रिंग के रूप में निर्मित होता है; यह आवश्यक है जब टेबल/कॉलम के नाम या स्टेटमेंट प्रकार रनटाइम तक ज्ञात नहीं हैं, लेकिन बाइंड वेरिएबल का उपयोग नहीं करने पर ओवरहेड अधिक होता है और SQL इंजेक्शन का जोखिम होता है
C
Static SQL cannot use variables; dynamic SQL always uses variables स्टेटिक SQL वेरिएबल का उपयोग नहीं कर सकता; डायनेमिक SQL हमेशा वेरिएबल का उपयोग करता है
D
Dynamic SQL is always preferred डायनामिक एसक्यूएल को हमेशा प्राथमिकता दी जाती है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Static SQL: compile-time validation (syntax/type errors caught early), pre-parsed query plan, better performance. Use for: known table/column names, fixed query structure. Dynamic SQL (EXECUTE IMMEDIATE): use for: DDL in PL/SQL, table names from variables, dynamic WHERE clauses, unknown column names. Risk: SQL injection if concatenating user input directly - always use USING bind_vars clause.
व्याख्या (हिन्दी) स्टेटिक एसक्यूएल: संकलन-समय सत्यापन (सिंटैक्स/प्रकार की त्रुटियां जल्दी पकड़ी गईं), पूर्व-पार्स की गई क्वेरी योजना, बेहतर प्रदर्शन। इनके लिए उपयोग करें: ज्ञात तालिका/कॉलम नाम, निश्चित क्वेरी संरचना। डायनेमिक एसक्यूएल (तत्काल निष्पादित करें): इसके लिए उपयोग करें: पीएल/एसक्यूएल में डीडीएल, वेरिएबल्स से तालिका नाम, डायनेमिक WHERE क्लॉज, अज्ञात कॉलम नाम। जोखिम: यदि उपयोगकर्ता इनपुट को सीधे संयोजित किया जा रहा है तो एसक्यूएल इंजेक्शन - हमेशा USING बाइंड_वर्स क्लॉज का उपयोग करें।
98
EN + हिं Medium
GB What is the FORALL statement and how does it differ from a regular FOR loop for DML operations?
IN FORALL स्टेटमेंट क्या है और यह DML संचालन के लिए नियमित FOR लूप से कैसे भिन्न है?
A
FORALL sends the entire collection of DML operations to the SQL engine in a single context switch (one round-trip) vs. a regular FOR loop which sends each DML operation individually (one round-trip per iteration); FORALL is typically 10-100x faster for bulk DML because it eliminates N-1 context switches for N rows FORALL DML संचालन के पूरे संग्रह को SQL इंजन को एक एकल संदर्भ स्विच (एक राउंड-ट्रिप) बनाम एक नियमित FOR लूप में भेजता है जो प्रत्येक DML ऑपरेशन को व्यक्तिगत रूप से भेजता है (प्रति पुनरावृत्ति एक राउंड-ट्रिप); बल्क डीएमएल के लिए FORALL आमतौर पर 10-100x तेज है क्योंकि यह N पंक्तियों के लिए N-1 संदर्भ स्विच को समाप्त कर देता है
B
FORALL can only process 100 rows at a time FORALL एक समय में केवल 100 पंक्तियों को संसाधित कर सकता है
C
They produce identical results वे समान परिणाम देते हैं
D
FORALL is only for INSERT operations FORALL केवल INSERT संचालन के लिए है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) FORALL i IN 1..emp_ids.COUNT DELETE FROM emp WHERE id=emp_ids(i); vs FOR i IN 1..emp_ids.COUNT LOOP DELETE FROM emp WHERE id=emp_ids(i); END LOOP; The FORALL sends all 10,000 DELETEs in one SQL engine call. The FOR loop sends 10,000 individual calls. Context switch cost: typically 0.1-1ms per switch = 1-10 seconds overhead eliminated. SQL%BULK_ROWCOUNT(i) gives rows affected per FORALL iteration.
व्याख्या (हिन्दी) FORALL i IN 1..emp_ids.COUNT DELETE FROM EMP WHERE id=emp_ids(i); बनाम i IN 1..emp_ids.COUNT लूप DELETE FROM EMP WHERE id=emp_ids(i); अंत लूप; FORALL एक SQL इंजन कॉल में सभी 10,000 DELETEs भेजता है। FOR लूप 10,000 व्यक्तिगत कॉल भेजता है। संदर्भ स्विच लागत: आम तौर पर प्रति स्विच 0.1-1ms = 1-10 सेकंड ओवरहेड समाप्त। SQL%BULK_ROWCOUNT(i) प्रति FORALL पुनरावृत्ति से प्रभावित पंक्तियाँ देता है।
99
EN + हिं Medium
GB What is a PL/SQL record type and how does it differ from a collection?
IN PL/SQL रिकॉर्ड प्रकार क्या है और यह संग्रह से किस प्रकार भिन्न है?
A
A PL/SQL record type is a composite data type that groups related fields of different data types into a single structure (similar to a struct in C or row in a table); a collection is an ordered set of elements all of the same type. Records group heterogeneous fields; collections group homogeneous elements पीएल/एसक्यूएल रिकॉर्ड प्रकार एक समग्र डेटा प्रकार है जो विभिन्न डेटा प्रकारों के संबंधित फ़ील्ड को एक ही संरचना में समूहित करता है (सी में एक संरचना या तालिका में पंक्ति के समान); संग्रह एक ही प्रकार के सभी तत्वों का एक क्रमबद्ध सेट है। रिकॉर्ड्स समूह विषम क्षेत्रों; संग्रह सजातीय तत्वों को समूहित करता है
B
They are identical data structures वे समान डेटा संरचनाएं हैं
C
Collections support field names; records support only numeric indexing संग्रह फ़ील्ड नामों का समर्थन करते हैं; रिकॉर्ड केवल संख्यात्मक अनुक्रमण का समर्थन करते हैं
D
Records are stored in the database; collections are in-memory only रिकॉर्ड्स डेटाबेस में संग्रहीत हैं; संग्रह केवल स्मृति में हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) PL/SQL record: TYPE emp_rec IS RECORD (emp_id NUMBER, emp_name VARCHAR2(100), salary NUMBER); - groups multiple different-typed fields. Access: emp_rec.emp_name. Used for: grouping related data (like a table row). Collection: TYPE id_list IS TABLE OF NUMBER - ordered set of same type. Access: id_list(1), id_list(2). Used for: processing multiple values of the same type, BULK COLLECT into, FORALL from.
व्याख्या (हिन्दी) पीएल/एसक्यूएल रिकॉर्ड: प्रकार एम्प_रेक रिकॉर्ड है (एम्प_आईडी नंबर, एम्प_नाम VARCHAR2(100), वेतन नंबर); - कई अलग-अलग प्रकार के फ़ील्ड को समूहित करता है। पहुंच: emp_rec.emp_name. इसके लिए उपयोग किया जाता है: संबंधित डेटा को समूहीकृत करना (तालिका पंक्ति की तरह)। संग्रह: प्रकार id_list संख्या तालिका है - एक ही प्रकार का ऑर्डर किया गया सेट। पहुंच: id_list(1), id_list(2). इसके लिए उपयोग किया जाता है: एक ही प्रकार के कई मानों को संसाधित करना, थोक संग्रह करना, से पूरा करना।
100
EN + हिं Easy
GB What is native compilation (NATIVE) vs interpreted mode for PL/SQL and what are the performance trade-offs?
IN पीएल/एसक्यूएल के लिए मूल संकलन (नेटिव) बनाम व्याख्यायित मोड क्या है और प्रदर्शन ट्रेड-ऑफ क्या हैं?
A
NATIVE compilation is only available in Oracle Enterprise Edition not Standard नेटिव संकलन केवल Oracle एंटरप्राइज़ संस्करण में उपलब्ध है, मानक में नहीं
B
NATIVE compilation is always significantly better than interpreted mode नेटिव संकलन हमेशा व्याख्या किए गए मोड से काफी बेहतर होता है
C
INTERPRETED mode produces more secure code than NATIVE mode इंटरप्रेटेड मोड नेटिव मोड की तुलना में अधिक सुरक्षित कोड उत्पन्न करता है
D
PL/SQL NATIVE: compiles PL/SQL code to native machine code via an external C compiler; eliminates interpreter overhead; best for CPU-intensive computations and complex algorithms. INTERPRETED: PL/SQL bytecode executed by the PL/SQL VM; faster compilation, simpler deployment; best for I/O-bound code (most DB code waits on SQL, not PL/SQL computation) पीएल/एसक्यूएल नेटिव: बाहरी सी कंपाइलर के माध्यम से पीएल/एसक्यूएल कोड को मूल मशीन कोड में संकलित करता है; दुभाषिया ओवरहेड को समाप्त करता है; सीपीयू-गहन गणनाओं और जटिल एल्गोरिदम के लिए सर्वोत्तम। व्याख्या: पीएल/एसक्यूएल वीएम द्वारा निष्पादित पीएल/एसक्यूएल बाइटकोड; तेज़ संकलन, सरल परिनियोजन; I/O-बाउंड कोड के लिए सर्वोत्तम (अधिकांश DB कोड SQL पर प्रतीक्षा करता है, PL/SQL गणना पर नहीं)
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) NATIVE mode: ALTER SESSION SET PLSQL_CODE_TYPE=NATIVE; CREATE OR REPLACE PROCEDURE... (compiles to native library). 2-10x faster for CPU-bound PL/SQL. I/O-bound (SQL-heavy) code: minimal benefit since SQL execution time dominates. Configure: PLSQL_NATIVE_LIBRARY_DIR must be set. Check: SELECT plsql_code_type FROM user_plsql_object_settings WHERE name=MY_PROC.
व्याख्या (हिन्दी) मूल मोड: परिवर्तन सत्र सेट PLSQL_CODE_TYPE=मूल; प्रक्रिया बनाएं या बदलें... (मूल पुस्तकालय में संकलित)। सीपीयू-बाउंड पीएल/एसक्यूएल के लिए 2-10 गुना तेज। I/O-बाउंड (SQL-भारी) कोड: SQL निष्पादन समय हावी होने के कारण न्यूनतम लाभ। कॉन्फ़िगर करें: PLSQL_NATIVE_LIBRARY_DIR सेट होना चाहिए. जांचें: user_plsql_object_settings से plsql_code_type चुनें जहां नाम = MY_PROC है।
101
EN + हिं Easy
GB What is PL/SQL profiling and what tools are available in Oracle for identifying PL/SQL bottlenecks?
IN PL/SQL प्रोफाइलिंग क्या है और PL/SQL बाधाओं की पहचान के लिए Oracle में कौन से उपकरण उपलब्ध हैं?
A
PL/SQL has absolutely no native profiling capabilities built in पीएल/एसक्यूएल में कोई मूल प्रोफ़ाइलिंग क्षमताएं अंतर्निहित नहीं हैं
B
Profiling only works for standalone procedures not package subprograms प्रोफ़ाइलिंग केवल स्टैंडअलोन प्रक्रियाओं के लिए काम करती है, पैकेज उपप्रोग्राम के लिए नहीं
C
Profiling is only available through expensive third-party Oracle tools प्रोफ़ाइलिंग केवल महंगे तृतीय-पक्ष Oracle टूल के माध्यम से उपलब्ध है
D
PL/SQL profiling measures execution time and call counts for each line/procedure in PL/SQL code; Oracle provides DBMS_PROFILER (line-level timing), DBMS_HPROF (hierarchical profiler showing call trees and cumulative times), and PL/SQL Developer/SQL Developer GUI tools that visualize profiling data; essential for identifying slow procedures and optimization targets पीएल/एसक्यूएल प्रोफाइलिंग पीएल/एसक्यूएल कोड में प्रत्येक लाइन/प्रक्रिया के लिए निष्पादन समय और कॉल गणना को मापता है; Oracle DBMS_PROFILER (लाइन-लेवल टाइमिंग), DBMS_HPROF (कॉल ट्री और संचयी समय दिखाने वाला पदानुक्रमित प्रोफाइलर), और PL/SQL डेवलपर/SQL डेवलपर GUI उपकरण प्रदान करता है जो प्रोफाइलिंग डेटा को विज़ुअलाइज़ करते हैं; धीमी प्रक्रियाओं और अनुकूलन लक्ष्यों की पहचान के लिए आवश्यक
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) DBMS_HPROF usage: DBMS_HPROF.START_PROFILING('PROFILER_DIR','profile.trc'); your_procedure(); DBMS_HPROF.STOP_PROFILING; run_id := DBMS_HPROF.ANALYZE(location=>'PROFILER_DIR', filename=>'profile.trc'); SELECT * FROM dbmshp_function_info WHERE runid=run_id ORDER BY function_elapsed_time DESC. Shows: which functions took most time, call counts, sub-function breakdown.
व्याख्या (हिन्दी) DBMS_HPROF उपयोग: DBMS_HPROF.START_PROFILING('PROFILER_DIR','profile.trc'); आपकी_प्रक्रिया(); DBMS_HPROF.STOP_PROFILING; run_id := DBMS_HPROF.ANALYZE(location=>'PROFILER_DIR', फ़ाइल नाम=>'profile.trc'); * dbmshp_function_info से चुनें जहां runid=run_id function_elapsed_time DESC द्वारा ऑर्डर करें। दिखाता है: किस फ़ंक्शन में सबसे अधिक समय लगा, कॉल की संख्या, उप-फ़ंक्शन ब्रेकडाउन।
102
EN + हिं Easy
GB What is the PL/SQL function result cache (RESULT_CACHE) and what automatic invalidation mechanism does it use?
IN PL/SQL फ़ंक्शन परिणाम कैश (RESULT_CACHE) क्या है और यह किस स्वचालित अमान्यकरण तंत्र का उपयोग करता है?
A
The result cache requires manual invalidation by the DBA when data changes जब डेटा बदलता है तो परिणाम कैश को डीबीए द्वारा मैन्युअल अमान्यकरण की आवश्यकता होती है
B
The result cache only works for functions that have no input parameters परिणाम कैश केवल उन फ़ंक्शंस के लिए काम करता है जिनमें कोई इनपुट पैरामीटर नहीं है
C
The result cache stores results only for the current database session परिणाम कैश केवल वर्तमान डेटाबेस सत्र के लिए परिणाम संग्रहीत करता है
D
The PL/SQL RESULT_CACHE stores function results in the SGA (System Global Area) shared across all sessions; Oracle automatically invalidates cached results when any dependent database table or view is modified (DML commit), ensuring cache consistency without any manual intervention required PL/SQL RESULT_CACHE फ़ंक्शन परिणामों को सभी सत्रों में साझा किए गए SGA (सिस्टम ग्लोबल एरिया) में संग्रहीत करता है; जब किसी भी आश्रित डेटाबेस तालिका या दृश्य को संशोधित (डीएमएल प्रतिबद्ध) किया जाता है, तो ओरेकल स्वचालित रूप से कैश्ड परिणामों को अमान्य कर देता है, बिना किसी मैन्युअल हस्तक्षेप के कैश स्थिरता सुनिश्चित करता है।
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) RESULT_CACHE mechanism: CREATE FUNCTION get_config(p_key VARCHAR2) RETURN VARCHAR2 RESULT_CACHE; First call: execute function, store result in SGA result cache keyed by (function_name, parameter_values). Subsequent calls: return cached value (no SQL execution). On COMMIT to config table: Oracle invalidates all cached results for this function. Query: SELECT * FROM V$RESULT_CACHE_OBJECTS to monitor cache usage. Most effective for lookup functions on stable reference data.
व्याख्या (हिन्दी) RESULT_CACHE तंत्र: फ़ंक्शन बनाएं get_config(p_key VARCHAR2) रिटर्न VARCHAR2 RESULT_CACHE; पहली कॉल: फ़ंक्शन निष्पादित करें, परिणाम को SGA परिणाम कैश में संग्रहीत करें (फ़ंक्शन_नाम, पैरामीटर_वैल्यू)। बाद की कॉल: कैश्ड मान लौटाएँ (कोई SQL निष्पादन नहीं)। कॉन्फ़िगरेशन तालिका के लिए प्रतिबद्ध होने पर: Oracle इस फ़ंक्शन के लिए सभी कैश्ड परिणामों को अमान्य कर देता है। क्वेरी: कैशे उपयोग की निगरानी के लिए V$RESULT_CACHE_OBJECTS से चयन करें। स्थिर संदर्भ डेटा पर लुकअप फ़ंक्शन के लिए सबसे प्रभावी।
103
EN + हिं Medium
GB What is the difference between a PL/SQL stored procedure and a stored function?
IN पीएल/एसक्यूएल संग्रहीत प्रक्रिया और संग्रहीत फ़ंक्शन के बीच क्या अंतर है?
A
Functions are always faster than procedures कार्य हमेशा प्रक्रियाओं से तेज़ होते हैं
B
Procedures can return multiple values; functions cannot return anything प्रक्रियाएं एकाधिक मान लौटा सकती हैं; फ़ंक्शंस कुछ भी वापस नहीं कर सकते
C
Stored procedure: a named block that executes logic and may return values via OUT/IN OUT parameters called with EXECUTE/CALL cannot be used in SQL expressions. Stored function: MUST return a single value via RETURN can be called from within SQL expressions (SELECT WHERE) and is side-effect restricted in SQL contexts संग्रहीत प्रक्रिया: एक नामित ब्लॉक जो तर्क निष्पादित करता है और EXECUTE/CALL के साथ बुलाए गए OUT/IN OUT पैरामीटर के माध्यम से मान लौटा सकता है, SQL अभिव्यक्तियों में उपयोग नहीं किया जा सकता है। संग्रहीत फ़ंक्शन: RETURN के माध्यम से एक एकल मान लौटाना होगा, इसे SQL अभिव्यक्तियों के भीतर से कॉल किया जा सकता है (SELECT WHERE) और SQL संदर्भों में साइड-इफ़ेक्ट प्रतिबंधित है
D
Functions are compiled; procedures are interpreted फ़ंक्शन संकलित हैं; प्रक्रियाओं की व्याख्या की जाती है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Procedure: EXEC my_proc(param); Can have IN, OUT, IN OUT params. No RETURN value (returns via OUT params). Cannot use in SELECT. Function: val := my_func(param) or SELECT my_func(col) FROM t. Must have RETURN type and RETURN statement. In Oracle, functions called from SQL must not modify tables.
व्याख्या (हिन्दी) प्रक्रिया: EXEC my_proc(param); IN, OUT, IN OUT पैरामीटर हो सकते हैं। कोई रिटर्न मान नहीं (आउट पैरामीटर के माध्यम से रिटर्न)। SELECT में उपयोग नहीं किया जा सकता. फ़ंक्शन: val := my_func(param) या t से my_func(col) चुनें। रिटर्न प्रकार और रिटर्न विवरण होना चाहिए। Oracle में, SQL से बुलाए गए फ़ंक्शंस को तालिकाओं को संशोधित नहीं करना चाहिए।
104
EN + हिं Easy
GB What is PRAGMA EXCEPTION_INIT in PL/SQL?
IN PL/SQL में PRAGMA EXCEPTION_INIT क्या है?
A
A pragma that initializes all exceptions to NULL एक प्राग्मा जो सभी अपवादों को NULL में प्रारंभ करता है
B
A pragma for performance optimization प्रदर्शन अनुकूलन के लिए एक व्यावहारिकता
C
A compiler directive that associates a user-defined exception name with an Oracle error number allowing you to catch specific Oracle errors by name rather than using WHEN OTHERS and checking SQLCODE एक कंपाइलर निर्देश जो उपयोगकर्ता-परिभाषित अपवाद नाम को Oracle त्रुटि संख्या के साथ जोड़ता है, जिससे आप WHEN OTHERS का उपयोग करने और SQLCODE की जाँच करने के बजाय विशिष्ट Oracle त्रुटियों को नाम से पकड़ने की अनुमति देते हैं।
D
A pragma for defining new exception types नए अपवाद प्रकारों को परिभाषित करने के लिए एक व्यावहारिक पद्धति
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) PRAGMA EXCEPTION_INIT(e_null_insert, -1400): associates name e_null_insert with ORA-01400 (cannot insert NULL). Then: EXCEPTION WHEN e_null_insert THEN gives named readable exception handling instead of WHEN OTHERS THEN IF SQLCODE=-1400. Makes code more readable and maintainable.
व्याख्या (हिन्दी) PRAGMA EXCEPTION_INIT(e_null_insert, -1400): नाम e_null_insert को ORA-01400 के साथ जोड़ता है (NULL नहीं डाल सकता)। तब: अपवाद जब e_null_insert तब SQLCODE=-1400 होने पर अन्य के बजाय पठनीय अपवाद हैंडलिंग नाम देता है। कोड को अधिक पठनीय और रखरखाव योग्य बनाता है।
105
EN + हिं Medium
GB What is the difference between implicit cursor and explicit cursor in PL/SQL?
IN पीएल/एसक्यूएल में अंतर्निहित कर्सर और स्पष्ट कर्सर के बीच क्या अंतर है?
A
Implicit cursors support multiple rows; explicit support single rows अंतर्निहित कर्सर एकाधिक पंक्तियों का समर्थन करते हैं; स्पष्ट समर्थन एकल पंक्तियाँ
B
Explicit cursors are always better than implicit स्पष्ट अभिशाप हमेशा अंतर्निहित से बेहतर होते हैं
C
Explicit cursors are read-only; implicit cursors support DML स्पष्ट कर्सर केवल पढ़ने के लिए होते हैं; अंतर्निहित कर्सर डीएमएल का समर्थन करते हैं
D
Implicit cursor: automatically created by PL/SQL for single-row SELECT INTO or DML statements (attributes: SQL%ROWCOUNT SQL%FOUND SQL%NOTFOUND SQL%ISOPEN). Explicit cursor: developer-declared named cursor for multi-row queries with full control over OPEN FETCH CLOSE lifecycle निहित कर्सर: एकल-पंक्ति SELECT INTO या DML कथनों के लिए PL/SQL द्वारा स्वचालित रूप से बनाया गया (विशेषताएँ: SQL%ROWCOUNT SQL%FOUND SQL%NOTFOUND SQL%ISOPEN)। स्पष्ट कर्सर: ओपन फ़ेच क्लोज़ जीवनचक्र पर पूर्ण नियंत्रण के साथ बहु-पंक्ति प्रश्नों के लिए डेवलपर द्वारा घोषित नामित कर्सर
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Implicit: SELECT col INTO var FROM t WHERE id=x (auto-managed, raises NO_DATA_FOUND or TOO_MANY_ROWS). SQL%ROWCOUNT after UPDATE/DELETE. Explicit: CURSOR c IS SELECT * FROM t; OPEN c; LOOP FETCH c INTO rec; EXIT WHEN c%NOTFOUND; ... END LOOP; CLOSE c; Full control, multi-row processing.
व्याख्या (हिन्दी) अंतर्निहित: SELECT col INTO var FROM t WHERE id=x (स्वचालित रूप से प्रबंधित, NO_DATA_FOUND या TOO_MANY_ROWS बढ़ाता है)। अपडेट/डिलीट के बाद SQL%ROWCOUNT। स्पष्ट: कर्सर c चयन है * t से; खुला ग; लूप फ़ेच सी इनटू रिक; जब सी%नोट नहीं मिला तो बाहर निकलें; ...अंत लूप; बंद करें सी; पूर्ण नियंत्रण, बहु-पंक्ति प्रसंस्करण।
91–105 of 139