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
106
EN + हिं Hard
GB What is BULK COLLECT and FORALL in PL/SQL and how do they improve performance?
IN PL/SQL में BULK COLLECT और FORALL क्या हैं और वे प्रदर्शन में सुधार कैसे करते हैं?
A
BULK COLLECT: fetches multiple rows from a cursor into a collection in a single context switch. FORALL: executes a DML statement for all elements of a collection in a single context switch. Both minimize expensive PL/SQL-to-SQL engine context switches थोक संग्रह: एक संदर्भ स्विच में कर्सर से कई पंक्तियों को एक संग्रह में लाता है। FORALL: एकल संदर्भ स्विच में संग्रह के सभी तत्वों के लिए DML कथन निष्पादित करता है। दोनों महंगे पीएल/एसक्यूएल-टू-एसक्यूएल इंजन संदर्भ स्विच को कम करते हैं
B
Features for parallel query execution समानांतर क्वेरी निष्पादन के लिए सुविधाएँ
C
Features for handling encrypted data एन्क्रिप्टेड डेटा को संभालने की सुविधाएँ
D
Features for managing large text data बड़े टेक्स्ट डेटा को प्रबंधित करने की सुविधाएँ
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Context switch overhead: each PL/SQL FETCH or DML in a loop = one switch between PL/SQL and SQL engines. For 10,000 rows: 10,000 switches. BULK COLLECT: fetch all rows in one switch. FORALL: execute 10,000 DML in one switch. 100-1000x faster for bulk operations.
व्याख्या (हिन्दी) संदर्भ स्विच ओवरहेड: एक लूप में प्रत्येक PL/SQL FETCH या DML = PL/SQL और SQL इंजन के बीच एक स्विच। 10,000 पंक्तियों के लिए: 10,000 स्विच। थोक संग्रहण: सभी पंक्तियों को एक स्विच में लाएँ। FORALL: एक स्विच में 10,000 डीएमएल निष्पादित करें। थोक संचालन के लिए 100-1000 गुना तेज।
107
EN + हिं Easy
GB What is a REF CURSOR in PL/SQL and what is its advantage over static cursors?
IN PL/SQL में REF कर्सर क्या है और स्थिर कर्सर की तुलना में इसका क्या लाभ है?
A
A pointer to a query result set that can be passed as a parameter between programs or returned from a function; advantage: the query can be determined at runtime (dynamic) and the cursor can be returned to a calling program (Java/Python) as a result set किसी क्वेरी परिणाम सेट के लिए एक सूचक जिसे प्रोग्रामों के बीच एक पैरामीटर के रूप में पारित किया जा सकता है या किसी फ़ंक्शन से लौटाया जा सकता है; लाभ: क्वेरी को रनटाइम (डायनामिक) पर निर्धारित किया जा सकता है और परिणाम सेट के रूप में कर्सर को कॉलिंग प्रोग्राम (जावा/पायथन) में वापस किया जा सकता है
B
A cursor that references other cursors एक कर्सर जो अन्य कर्सरों को संदर्भित करता है
C
A read-only cursor used only for reporting केवल पढ़ने योग्य कर्सर का उपयोग केवल रिपोर्टिंग के लिए किया जाता है
D
A reference to a static cursor स्थिर कर्सर का संदर्भ
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) REF CURSOR: TYPE t_ref IS REF CURSOR; or use SYS_REFCURSOR. PROCEDURE get_data(p_cursor OUT SYS_REFCURSOR) IS BEGIN OPEN p_cursor FOR SELECT * FROM emp; END; Java: CallableStatement.registerOutParameter with cursor type. Used for: returning result sets from stored procs, dynamic SQL results, multiple result sets.
व्याख्या (हिन्दी) रेफरी कर्सर: प्रकार t_ref रेफरी कर्सर है; या SYS_REFCURSOR का उपयोग करें। प्रक्रिया get_data(p_cursor OUT SYS_REFCURSOR) चयन के लिए p_cursor को खोलना शुरू कर देती है * Emp से; अंत; जावा: कर्सर प्रकार के साथ CallableStatement.registerOutParameter। इनके लिए उपयोग किया जाता है: संग्रहित प्रोसेस से परिणाम सेट लौटाना, गतिशील SQL परिणाम, एकाधिक परिणाम सेट।
108
EN + हिं Easy
GB What is EXECUTE IMMEDIATE in PL/SQL and when is it used?
IN PL/SQL में EXECUTE IMMEDIATE क्या है और इसका उपयोग कब किया जाता है?
A
Used to execute dynamic SQL strings built and executed at runtime allowing PL/SQL to execute DDL DML with runtime-determined table names/conditions or PL/SQL anonymous blocks not known at compile time रनटाइम पर निर्मित और निष्पादित गतिशील एसक्यूएल स्ट्रिंग्स को निष्पादित करने के लिए उपयोग किया जाता है, जिससे पीएल/एसक्यूएल को रनटाइम-निर्धारित तालिका नाम/शर्तों या पीएल/एसक्यूएल अज्ञात ब्लॉकों के साथ डीडीएल डीएमएल निष्पादित करने की अनुमति मिलती है जो संकलन समय पर ज्ञात नहीं होते हैं।
B
A statement for executing external programs from PL/SQL पीएल/एसक्यूएल से बाहरी प्रोग्राम निष्पादित करने के लिए एक बयान
C
A statement to immediately commit transactions लेन-देन तुरंत करने के लिए एक बयान
D
A statement to bypass transaction management लेन-देन प्रबंधन को बायपास करने के लिए एक बयान
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) EXECUTE IMMEDIATE sql_string USING bind_vars. Use cases: (1) DDL in PL/SQL: EXECUTE IMMEDIATE CREATE TABLE t (id INT). (2) Dynamic table name: EXECUTE IMMEDIATE SELECT * FROM || table_name. (3) Dynamic WHERE clause. Always use bind variables to prevent SQL injection in dynamic SQL.
व्याख्या (हिन्दी) बाइंड_वर्स का उपयोग करके तत्काल sql_string निष्पादित करें। उपयोग के मामले: (1) पीएल/एसक्यूएल में डीडीएल: तुरंत निष्पादित करें टेबल टी बनाएं (आईडी आईएनटी)। (2) गतिशील तालिका का नाम: तत्काल चयन निष्पादित करें * से || तालिका नाम। (3) डायनामिक व्हेयर क्लॉज। डायनेमिक SQL में SQL इंजेक्शन को रोकने के लिए हमेशा बाइंड वेरिएबल का उपयोग करें।
109
EN + हिं Easy
GB What are PL/SQL collections (Associative Arrays Nested Tables VARRAYs) and how do they differ?
IN PL/SQL संग्रह (एसोसिएटिव एरेज़ नेस्टेड टेबल्स VARRAYs) क्या हैं और वे कैसे भिन्न हैं?
A
Only Associative Arrays can be used in PL/SQL PL/SQL में केवल एसोसिएटिव एरेज़ का उपयोग किया जा सकता है
B
Collections in PL/SQL are identical to SQL arrays पीएल/एसक्यूएल में संग्रह एसक्यूएल सरणी के समान हैं
C
All PL/SQL collections are identical सभी पीएल/एसक्यूएल संग्रह समान हैं
D
Associative Array (INDEX BY): unbounded sparse indexed by PLS_INTEGER or VARCHAR2 exists only in PL/SQL memory. Nested Table: initially dense can have gaps (DELETE) can be stored in database column. VARRAY: fixed maximum size always dense (no gaps) ordered can be stored in database column एसोसिएटिव ऐरे (INDEX BY): PLS_INTEGER या VARCHAR2 द्वारा अनुक्रमित असीमित विरल केवल PL/SQL मेमोरी में मौजूद है। नेस्टेड टेबल: प्रारंभ में घने में अंतराल हो सकता है (हटाएं) डेटाबेस कॉलम में संग्रहीत किया जा सकता है। VARRAY: निश्चित अधिकतम आकार हमेशा सघन (कोई अंतराल नहीं) आदेशित डेटाबेस कॉलम में संग्रहीत किया जा सकता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Associative Array: TYPE t IS TABLE OF VARCHAR2(100) INDEX BY PLS_INTEGER. Best for lookups like a HashMap. Nested Table: TYPE t IS TABLE OF VARCHAR2(100) - stored in DB as column. VARRAY: TYPE t IS VARRAY(10) OF VARCHAR2(100) - fixed max size, ordered. All support BULK COLLECT.
व्याख्या (हिन्दी) एसोसिएटिव ऐरे: टाइप टी PLS_INTEGER द्वारा VARCHAR2(100) इंडेक्स की तालिका है। हैशमैप जैसे लुकअप के लिए सर्वोत्तम। नेस्टेड तालिका: टाइप टी VARCHAR2(100) की तालिका है - कॉलम के रूप में डीबी में संग्रहीत। वैरे: प्रकार टी VARCHAR2(100) का वैरे(10) है - निश्चित अधिकतम आकार, ऑर्डर किया गया। सभी थोक संग्रहण का समर्थन करते हैं।
110
EN + हिं Easy
GB What is AUTONOMOUS TRANSACTION pragma in PL/SQL?
IN पीएल/एसक्यूएल में स्वायत्त लेनदेन प्राग्मा क्या है?
A
A transaction that bypasses locking mechanisms एक लेनदेन जो लॉकिंग तंत्र को बायपास करता है
B
A transaction that runs in parallel with the main transaction एक लेन-देन जो मुख्य लेन-देन के समानांतर चलता है
C
A transaction that automatically commits on success एक लेनदेन जो सफल होने पर स्वचालित रूप से प्रतिबद्ध होता है
D
A pragma that makes a PL/SQL block run in its own independent transaction separate from the calling transaction - used for: writing audit/log records that persist even if the main transaction rolls back एक प्राग्मा जो पीएल/एसक्यूएल ब्लॉक को कॉलिंग लेनदेन से अलग अपने स्वतंत्र लेनदेन में चलाता है - इसके लिए उपयोग किया जाता है: ऑडिट/लॉग रिकॉर्ड लिखना जो मुख्य लेनदेन वापस आने पर भी जारी रहता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) PRAGMA AUTONOMOUS_TRANSACTION: the autonomous block starts its own transaction can COMMIT/ROLLBACK independently of caller. Use case: audit logging - even if main transaction rolls back, the audit record in the autonomous transaction is already committed. Warning: autonomous transactions do not see uncommitted changes of caller.
व्याख्या (हिन्दी) PRAGMA AUTONOMOUS_TRANSACTION: स्वायत्त ब्लॉक अपना स्वयं का लेनदेन शुरू करता है, कॉल करने वाले से स्वतंत्र रूप से कमिट/रोलबैक कर सकता है। उपयोग का मामला: ऑडिट लॉगिंग - भले ही मुख्य लेनदेन वापस आ जाए, स्वायत्त लेनदेन में ऑडिट रिकॉर्ड पहले से ही प्रतिबद्ध है। चेतावनी: स्वायत्त लेन-देन में कॉलर के अप्रतिबद्ध परिवर्तन नहीं दिखते।
111
EN + हिं Medium
GB What is the difference between statement-level and row-level triggers in PL/SQL?
IN पीएल/एसक्यूएल में स्टेटमेंट-लेवल और रो-लेवल ट्रिगर्स के बीच क्या अंतर है?
A
Statement-level trigger: fires ONCE for the entire DML statement regardless of how many rows are affected (cannot access :NEW/:OLD). Row-level trigger (FOR EACH ROW): fires ONCE for each affected row has access to :NEW (new values) and :OLD (old values) for validation and auditing स्टेटमेंट-लेवल ट्रिगर: पूरे डीएमएल स्टेटमेंट के लिए एक बार सक्रिय होता है, चाहे कितनी भी पंक्तियाँ प्रभावित हों (एक्सेस नहीं कर सकते: NEW/:OLD)। पंक्ति-स्तरीय ट्रिगर (प्रत्येक पंक्ति के लिए): प्रत्येक प्रभावित पंक्ति के लिए एक बार सक्रिय होने पर सत्यापन और ऑडिटिंग के लिए :नए (नए मान) और :OLD (पुराने मान) तक पहुंच होती है।
B
Triggers are identical to stored procedures ट्रिगर संग्रहीत प्रक्रियाओं के समान हैं
C
Triggers automatically call stored procedures ट्रिगर्स स्वचालित रूप से संग्रहीत प्रक्रियाओं को कॉल करते हैं
D
Row-level triggers are always faster than statement-level पंक्ति-स्तर ट्रिगर हमेशा कथन-स्तर से तेज़ होते हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Statement-level: CREATE TRIGGER trg AFTER UPDATE ON emp BEGIN ... END; fires once even for UPDATE affecting 1000 rows. Row-level: CREATE TRIGGER trg AFTER UPDATE ON emp FOR EACH ROW BEGIN IF :NEW.salary < :OLD.salary THEN RAISE_APPLICATION_ERROR(-20001, Cannot reduce salary); END IF; END;
व्याख्या (हिन्दी) कथन-स्तर: ईएमपी पर अपडेट के बाद ट्रिगर ट्रग बनाएं शुरू...अंत; अद्यतन के लिए भी एक बार सक्रिय होने से 1000 पंक्तियाँ प्रभावित होती हैं। पंक्ति-स्तर: प्रत्येक पंक्ति के लिए ईएमपी पर अपडेट के बाद ट्रिगर टीआरजी बनाएं यदि: नया वेतन <: पुराना वेतन फिर बढ़ाएं_आवेदन_त्रुटि(-20001, वेतन कम नहीं किया जा सकता); अंत यदि; अंत;
112
EN + हिं Easy
GB What is mutating table error in PL/SQL?
IN पीएल/एसक्यूएल में परिवर्तनशील तालिका त्रुटि क्या है?
A
An error in PL/SQL when table names are duplicated तालिका नाम डुप्लिकेट होने पर पीएल/एसक्यूएल में त्रुटि
B
An error (ORA-04091) that occurs when a row-level trigger tries to read from or write to the table that fired the trigger - the table is in an inconsistent state during the DML so Oracle prevents the trigger from querying it to avoid reading partial/inconsistent data एक त्रुटि (ORA-04091) जो तब होती है जब एक पंक्ति-स्तरीय ट्रिगर उस तालिका से पढ़ने या लिखने का प्रयास करता है जिसने ट्रिगर को सक्रिय किया - तालिका डीएमएल के दौरान असंगत स्थिति में है इसलिए ओरेकल आंशिक/असंगत डेटा को पढ़ने से बचने के लिए ट्रिगर को क्वेरी करने से रोकता है
C
An error caused by NULL values in trigger code ट्रिगर कोड में NULL मानों के कारण हुई त्रुटि
D
A table that changes its schema during use एक तालिका जो उपयोग के दौरान अपना स्कीमा बदलती है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Mutating table: row-level trigger on EMP fires during UPDATE EMP. Inside trigger: SELECT COUNT(*) FROM EMP (reading the table being updated). Oracle raises ORA-04091. Workarounds: (1) Use statement-level trigger instead. (2) Use package variable to collect data in row trigger process in statement trigger.
व्याख्या (हिन्दी) परिवर्तनशील तालिका: EMP पर पंक्ति-स्तरीय ट्रिगर अद्यतन EMP के दौरान सक्रिय होता है। आंतरिक ट्रिगर: EMP से COUNT(*) चुनें (अद्यतन की जा रही तालिका को पढ़ना)। Oracle ने ORA-04091 बढ़ाया। समाधान: (1) इसके बजाय स्टेटमेंट-स्तरीय ट्रिगर का उपयोग करें। (2) स्टेटमेंट ट्रिगर में पंक्ति ट्रिगर प्रक्रिया में डेटा एकत्र करने के लिए पैकेज वेरिएबल का उपयोग करें।
113
EN + हिं Medium
GB What is exception propagation in PL/SQL and how does it work across nested blocks?
IN पीएल/एसक्यूएल में अपवाद प्रसार क्या है और यह नेस्टेड ब्लॉकों में कैसे काम करता है?
A
Exceptions always terminate the entire program अपवाद हमेशा पूरे कार्यक्रम को समाप्त कर देते हैं
B
When an exception is raised in an inner block PL/SQL searches for a handler in that block first; if not found the exception propagates to the enclosing outer block; if no handler is found at any level it propagates to the calling environment as an unhandled exception जब किसी आंतरिक ब्लॉक में कोई अपवाद उठाया जाता है तो पीएल/एसक्यूएल पहले उस ब्लॉक में एक हैंडलर की खोज करता है; यदि नहीं मिला तो अपवाद संलग्न बाहरी ब्लॉक में फैल जाता है; यदि किसी भी स्तर पर कोई हैंडलर नहीं मिलता है तो यह कॉलिंग वातावरण में एक अनचाहे अपवाद के रूप में प्रसारित होता है
C
Exceptions are always silently ignored in inner blocks आंतरिक ब्लॉकों में अपवादों को हमेशा चुपचाप अनदेखा कर दिया जाता है
D
Exception propagation only works for user-defined exceptions अपवाद प्रसार केवल उपयोगकर्ता द्वारा परिभाषित अपवादों के लिए काम करता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Propagation: INNER BLOCK raises NO_DATA_FOUND, no handler in inner block - propagates to OUTER BLOCK. Outer block has WHEN NO_DATA_FOUND THEN - handled there. If no handler anywhere - caller gets the exception. Re-raise: RAISE in a handler re-raises the current exception to the next outer block.
व्याख्या (हिन्दी) प्रसार: आंतरिक ब्लॉक NO_DATA_FOUND बढ़ाता है, आंतरिक ब्लॉक में कोई हैंडलर नहीं है - बाहरी ब्लॉक में प्रसारित होता है। बाहरी ब्लॉक में WHEN NO_DATA_FOUND THEN - वहां संभाला गया है। यदि कहीं कोई हैंडलर नहीं है - तो कॉल करने वाले को अपवाद मिलता है। पुन: उठाएँ: हैंडलर में RAISE वर्तमान अपवाद को अगले बाहरी ब्लॉक में फिर से उठाता है।
114
EN + हिं Easy
GB What is a PL/SQL package and what are its advantages over standalone procedures?
IN पीएल/एसक्यूएल पैकेज क्या है और स्टैंडअलोन प्रक्रियाओं की तुलना में इसके क्या फायदे हैं?
A
A package is a schema object that groups related PL/SQL types variables constants cursors exceptions procedures and functions into a single logical unit with a specification (public interface) and body (implementation); advantages: encapsulation state persistence via package variables improved performance and overloading एक पैकेज एक स्कीमा ऑब्जेक्ट है जो संबंधित पीएल/एसक्यूएल प्रकार के चर, स्थिरांक, कर्सर, अपवाद प्रक्रियाओं और कार्यों को एक विनिर्देश (सार्वजनिक इंटरफ़ेस) और बॉडी (कार्यान्वयन) के साथ एक एकल तार्किक इकाई में समूहित करता है; लाभ: पैकेज वेरिएबल्स के माध्यम से एनकैप्सुलेशन स्थिति की दृढ़ता ने प्रदर्शन और ओवरलोडिंग में सुधार किया
B
Packages are identical to stored procedures पैकेज संग्रहीत प्रक्रियाओं के समान हैं
C
Packages are only useful for security purposes पैकेज केवल सुरक्षा उद्देश्यों के लिए उपयोगी हैं
D
Packages are slower than standalone procedures पैकेज स्टैंडअलोन प्रक्रियाओं की तुलना में धीमे हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Package advantages: (1) Encapsulation: public spec vs private body. (2) Session-level state: package variables persist across calls in a session. (3) Performance: first call loads entire package into memory. (4) Overloading: multiple procedures with same name different parameters. (5) Dependency management: body can change without invalidating dependents if spec unchanged.
व्याख्या (हिन्दी) पैकेज के लाभ: (1) एनकैप्सुलेशन: सार्वजनिक विशिष्टता बनाम निजी निकाय। (2) सत्र-स्तरीय स्थिति: पैकेज चर एक सत्र में सभी कॉलों पर बने रहते हैं। (3) प्रदर्शन: पहला कॉल पूरे पैकेज को मेमोरी में लोड करता है। (4) ओवरलोडिंग: एक ही नाम के विभिन्न मापदंडों वाली कई प्रक्रियाएं। (5) निर्भरता प्रबंधन: यदि विनिर्देश अपरिवर्तित है तो शरीर आश्रितों को अमान्य किए बिना बदल सकता है।
115
EN + हिं Easy
GB What is invoker rights vs definer rights in PL/SQL stored procedures?
IN पीएल/एसक्यूएल संग्रहीत प्रक्रियाओं में इनवॉकर अधिकार बनाम निश्चित अधिकार क्या है?
A
They only apply to functions not procedures वे केवल कार्यों पर लागू होते हैं, प्रक्रियाओं पर नहीं
B
They determine who can create the procedure वे निर्धारित करते हैं कि प्रक्रिया कौन बना सकता है
C
Invoker rights are faster than definer rights इन्वोकर अधिकार निश्चित अधिकारों की तुलना में तेज़ होते हैं
D
Definer rights (default): procedure executes with the privileges of the owner/definer regardless of who calls it. Invoker rights (AUTHID CURRENT_USER): procedure executes with the privileges of the caller enforcing caller-specific access controls; Invoker rights: better security (no privilege escalation) Definer rights: simpler deployment परिभाषितकर्ता अधिकार (डिफ़ॉल्ट): प्रक्रिया स्वामी/निर्धारक के विशेषाधिकारों के साथ निष्पादित होती है, चाहे इसे कोई भी कहे। इनवॉकर अधिकार (AUTHID CURRENT_USER): प्रक्रिया कॉलर-विशिष्ट पहुंच नियंत्रण लागू करने वाले कॉलर के विशेषाधिकारों के साथ निष्पादित होती है; इनवोकर अधिकार: बेहतर सुरक्षा (कोई विशेषाधिकार वृद्धि नहीं) परिभाषित अधिकार: सरल तैनाती
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Definer rights risk: attacker calls a definer-rights procedure owned by DBA - runs with DBA privileges - privilege escalation. Invoker rights: CREATE PROCEDURE p AUTHID CURRENT_USER AS ... caller with SELECT only privilege runs procedure with SELECT only - cannot escalate. Use invoker rights for security-sensitive operations.
व्याख्या (हिन्दी) परिभाषित अधिकार जोखिम: हमलावर डीबीए के स्वामित्व वाली एक निश्चित-अधिकार प्रक्रिया को कॉल करता है - डीबीए विशेषाधिकारों के साथ चलता है - विशेषाधिकार वृद्धि। इनवॉकर अधिकार: प्रक्रिया बनाएं p AUTHID CURRENT_USER AS ... केवल चयन विशेषाधिकार वाला कॉलर केवल चयन के साथ प्रक्रिया चलाता है - आगे नहीं बढ़ सकता। सुरक्षा-संवेदनशील कार्यों के लिए इनवॉकर अधिकारों का उपयोग करें।
116
EN + हिं Easy
GB What is dynamic SQL with REF CURSOR and BULK COLLECT pattern in PL/SQL?
IN PL/SQL में REF CURSOR और BULK COLLECT पैटर्न के साथ डायनामिक SQL क्या है?
A
Dynamic SQL cannot be used with collections डायनेमिक SQL का उपयोग संग्रहों के साथ नहीं किया जा सकता
B
Opens a REF CURSOR for a dynamically-built SQL query then uses BULK COLLECT to fetch all rows into a collection in a single context switch combining the flexibility of dynamic SQL with the bulk processing performance of BULK COLLECT गतिशील रूप से निर्मित SQL क्वेरी के लिए एक REF कर्सर खोलता है, फिर सभी पंक्तियों को एक ही संदर्भ स्विच में संग्रह में लाने के लिए BULK COLLECT का उपयोग करता है, जो BULK COLLECT के बल्क प्रोसेसिंग प्रदर्शन के साथ गतिशील SQL के लचीलेपन को जोड़ता है।
C
Using BULK COLLECT in static SQL only केवल स्थिर SQL में BULK COLLECT का उपयोग करना
D
BULK COLLECT only works with static cursors BULK COLLECT केवल स्थिर कर्सर के साथ काम करता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) OPEN ref_cur FOR dynamic_sql_string; FETCH ref_cur BULK COLLECT INTO collection; CLOSE ref_cur. This pattern: (1) Allows runtime-determined queries (dynamic SQL flexibility). (2) Fetches all rows in one context switch (BULK COLLECT performance). (3) Processes the collection with FORALL for bulk DML if needed.
व्याख्या (हिन्दी) डायनामिक_एसक्यूएल_स्ट्रिंग के लिए ref_cur खोलें; संग्रह में ref_cur थोक संग्रह प्राप्त करें; Ref_cur बंद करें. यह पैटर्न: (1) रनटाइम-निर्धारित क्वेरीज़ (गतिशील SQL लचीलापन) की अनुमति देता है। (2) सभी पंक्तियों को एक संदर्भ स्विच में लाता है (बल्क कलेक्ट प्रदर्शन)। (3) यदि आवश्यक हो तो थोक डीएमएल के लिए संग्रह को FORALL के साथ संसाधित करता है।
117
EN + हिं Easy
GB What is pipelined table function in PL/SQL?
IN PL/SQL में पाइपलाइन्ड टेबल फ़ंक्शन क्या है?
A
A function that returns rows incrementally (one at a time) rather than building the entire result collection in memory before returning; the SELECT statement can begin processing rows as they are produced by PIPE ROW enabling streaming and reducing memory requirements एक फ़ंक्शन जो लौटने से पहले मेमोरी में संपूर्ण परिणाम संग्रह बनाने के बजाय पंक्तियों को क्रमिक रूप से (एक समय में एक) लौटाता है; SELECT स्टेटमेंट पंक्तियों को संसाधित करना शुरू कर सकता है क्योंकि वे PIPE ROW द्वारा निर्मित होती हैं जिससे स्ट्रीमिंग सक्षम होती है और मेमोरी आवश्यकताओं को कम किया जाता है
B
A function that automatically parallelizes queries एक फ़ंक्शन जो स्वचालित रूप से प्रश्नों को समानांतर करता है
C
A function that pipelines data between stored procedures एक फ़ंक्शन जो संग्रहीत प्रक्रियाओं के बीच डेटा को पाइपलाइन करता है
D
A function that pipes data to external systems एक फ़ंक्शन जो डेटा को बाहरी सिस्टम तक पहुंचाता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Pipelined function: FUNCTION get_data RETURN t_table PIPELINED IS BEGIN FOR rec IN (SELECT...) LOOP PIPE ROW(transform(rec)); END LOOP; END. SELECT * FROM TABLE(get_data()): begins returning rows immediately as function produces them. No need to hold all rows in memory. Enables parallel table function execution.
व्याख्या (हिन्दी) पाइपलाइन फ़ंक्शन: फ़ंक्शन get_data रिटर्न t_table पाइपलाइन rec IN (SELECT...) लूप पाइप पंक्ति (ट्रांसफ़ॉर्म (rec)) के लिए शुरू होता है; अंत लूप; अंत। SELECT * FROM TABLE(get_data()): जैसे ही फ़ंक्शन उन्हें उत्पन्न करता है, तुरंत पंक्तियों को वापस करना शुरू कर देता है। सभी पंक्तियों को स्मृति में रखने की आवश्यकता नहीं है. समानांतर तालिका फ़ंक्शन निष्पादन सक्षम करता है।
118
EN + हिं Medium
GB What is the %TYPE and %ROWTYPE attribute in PL/SQL and why is it preferred?
IN PL/SQL में %TYPE और %ROWTYPE विशेषता क्या है और इसे क्यों प्राथमिकता दी जाती है?
A
Deprecated features replaced by explicit types अप्रचलित सुविधाओं को स्पष्ट प्रकारों से बदल दिया गया
B
Pct TYPE is only for numeric columns पीसीटी प्रकार केवल संख्यात्मक स्तंभों के लिए है
C
Pct ROWTYPE creates a physical copy of the table Pct ROWTYPE तालिका की एक भौतिक प्रतिलिपि बनाता है
D
Pct TYPE: declares a variable with the same data type as a specific column automatically adapting if the column type changes. Pct ROWTYPE: declares a record with the same structure as a table row or cursor result with fields matching all column names and types पीसीटी प्रकार: यदि कॉलम प्रकार बदलता है तो एक विशिष्ट कॉलम के समान डेटा प्रकार के साथ एक वैरिएबल घोषित करता है जो स्वचालित रूप से अनुकूलित होता है। Pct ROWTYPE: सभी कॉलम नामों और प्रकारों से मेल खाने वाले फ़ील्ड के साथ तालिका पंक्ति या कर्सर परिणाम के समान संरचना के साथ एक रिकॉर्ड घोषित करता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Anchored declarations: v_sal employees.salary%TYPE - if salary changes from NUMBER(8,2) to NUMBER(10,2), variable automatically adapts with no code change needed. v_emp employees%ROWTYPE - record with v_emp.emp_id, v_emp.name, v_emp.salary fields. Prevents type mismatch errors and reduces maintenance when schemas evolve.
व्याख्या (हिन्दी) संलग्न घोषणाएँ: v_sal कर्मचारी.वेतन% प्रकार - यदि वेतन NUMBER(8,2) से NUMBER(10,2) में बदलता है, तो वेरिएबल स्वचालित रूप से बिना किसी कोड परिवर्तन के अनुकूलित हो जाता है। v_emp कर्मचारी%ROWTYPE - v_emp.emp_id, v_emp.name, v_emp.salary फ़ील्ड के साथ रिकॉर्ड करें। प्रकार की बेमेल त्रुटियों को रोकता है और स्कीमा विकसित होने पर रखरखाव को कम करता है।
119
EN + हिं Easy
GB What is conditional compilation in PL/SQL?
IN पीएल/एसक्यूएल में सशर्त संकलन क्या है?
A
A feature for compiling PL/SQL in parallel पीएल/एसक्यूएल को समानांतर में संकलित करने की एक सुविधा
B
A feature that only compiles changed PL/SQL objects एक सुविधा जो केवल परिवर्तित पीएल/एसक्यूएल ऑब्जेक्ट को संकलित करती है
C
A preprocessor feature that uses $IF/$ELSIF/$ELSE/$END IF directives evaluated at compile time to include or exclude code sections; used for: maintaining different versions of code for different environments (dev/test/prod) including debug logging in dev only handling version-specific features एक प्रीप्रोसेसर सुविधा जो कोड अनुभागों को शामिल करने या बाहर करने के लिए संकलन समय पर मूल्यांकन किए गए $IF/$ELSIF/$ELSE/$END IF निर्देशों का उपयोग करती है; इसके लिए उपयोग किया जाता है: विभिन्न वातावरणों (डेव/टेस्ट/प्रोड) के लिए कोड के विभिन्न संस्करणों को बनाए रखना, जिसमें डिबग लॉगिंग शामिल है, केवल संस्करण-विशिष्ट सुविधाओं को संभालना
D
Compiling only procedures that have changed केवल उन प्रक्रियाओं को संकलित करना जो बदल गई हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Conditional compilation: $IF $$DEBUG_MODE $THEN DBMS_OUTPUT.PUT_LINE(debug info); $END IF. Set: ALTER SESSION SET PLSQL_CCFLAGS=DEBUG_MODE:TRUE. Code between $IF...$END IF is included/excluded at compile time (not runtime). Use for: debug code, version-specific behavior, environment-specific logic without runtime IF overhead.
व्याख्या (हिन्दी) सशर्त संकलन: $IF $$DEBUG_MODE $THEN DBMS_OUTPUT.PUT_LINE(डीबग जानकारी); $END यदि. सेट: सत्र बदलें सेट PLSQL_CCFLAGS=DEBUG_MODE:TRUE. $IF...$END IF के बीच का कोड संकलन समय पर शामिल/बहिष्कृत किया जाता है (रनटाइम नहीं)। इसके लिए उपयोग करें: डिबग कोड, संस्करण-विशिष्ट व्यवहार, रनटाइम आईएफ ओवरहेड के बिना पर्यावरण-विशिष्ट तर्क।
120
EN + हिं Easy
GB What is the UTL_FILE package in PL/SQL and what security measure controls its usage?
IN PL/SQL में UTL_FILE पैकेज क्या है और कौन सा सुरक्षा उपाय इसके उपयोग को नियंत्रित करता है?
A
A utility for file compression within PL/SQL पीएल/एसक्यूएल के भीतर फ़ाइल संपीड़न के लिए एक उपयोगिता
B
A package that provides PL/SQL access to OS filesystem files (read and write) allowing PL/SQL programs to read/write files on the database server; security controlled by the DIRECTORY object which must be granted to users - prevents access to arbitrary paths एक पैकेज जो पीएल/एसक्यूएल को ओएस फाइल सिस्टम फाइलों तक पहुंच प्रदान करता है (पढ़ें और लिखें) जो पीएल/एसक्यूएल प्रोग्राम को डेटाबेस सर्वर पर फाइलों को पढ़ने/लिखने की अनुमति देता है; DIRECTORY ऑब्जेक्ट द्वारा नियंत्रित सुरक्षा जो उपयोगकर्ताओं को प्रदान की जानी चाहिए - मनमाने रास्तों तक पहुंच को रोकती है
C
A package for reading URLs from the database डेटाबेस से यूआरएल पढ़ने के लिए एक पैकेज
D
A package for URL file downloads in Oracle Oracle में URL फ़ाइल डाउनलोड के लिए एक पैकेज
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) UTL_FILE requires: CREATE DIRECTORY reports_dir AS /app/reports (DBA creates). GRANT READ, WRITE ON DIRECTORY reports_dir TO app_user. Then: f := UTL_FILE.FOPEN(REPORTS_DIR, report.txt, W). DIRECTORY objects control which OS paths are accessible. Prevents arbitrary path traversal and sensitive file access.
व्याख्या (हिन्दी) UTL_FILE के लिए आवश्यक है: CREATE DIRECTORY रिपोर्ट_dir AS /app/रिपोर्ट (DBA बनाता है)। ऐप_उपयोगकर्ता को पढ़ने, निर्देशिका रिपोर्ट_डीआईआर पर लिखने की अनुमति दें। फिर: f := UTL_FILE.FOPEN(REPORTS_DIR, रिपोर्ट.txt, W)। DIRECTORY ऑब्जेक्ट नियंत्रित करते हैं कि कौन से OS पथ पहुंच योग्य हैं। मनमाने ढंग से पथ ट्रैवर्सल और संवेदनशील फ़ाइल पहुंच को रोकता है।
106–120 of 139