DBMS — MCQ Practice

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

📚 2982 Questions 🌐 Hindi + English ✅ Free
भाषा / Language:
2982 questions
1771
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) स्टेटमेंट ट्रिगर में पंक्ति ट्रिगर प्रक्रिया में डेटा एकत्र करने के लिए पैकेज वेरिएबल का उपयोग करें।
1772
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 वर्तमान अपवाद को अगले बाहरी ब्लॉक में फिर से उठाता है।
1773
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) निर्भरता प्रबंधन: यदि विनिर्देश अपरिवर्तित है तो शरीर आश्रितों को अमान्य किए बिना बदल सकता है।
1774
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 ... केवल चयन विशेषाधिकार वाला कॉलर केवल चयन के साथ प्रक्रिया चलाता है - आगे नहीं बढ़ सकता। सुरक्षा-संवेदनशील कार्यों के लिए इनवॉकर अधिकारों का उपयोग करें।
1775
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 के साथ संसाधित करता है।
1776
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()): जैसे ही फ़ंक्शन उन्हें उत्पन्न करता है, तुरंत पंक्तियों को वापस करना शुरू कर देता है। सभी पंक्तियों को स्मृति में रखने की आवश्यकता नहीं है. समानांतर तालिका फ़ंक्शन निष्पादन सक्षम करता है।
1777
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 फ़ील्ड के साथ रिकॉर्ड करें। प्रकार की बेमेल त्रुटियों को रोकता है और स्कीमा विकसित होने पर रखरखाव को कम करता है।
1778
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 के बीच का कोड संकलन समय पर शामिल/बहिष्कृत किया जाता है (रनटाइम नहीं)। इसके लिए उपयोग करें: डिबग कोड, संस्करण-विशिष्ट व्यवहार, रनटाइम आईएफ ओवरहेड के बिना पर्यावरण-विशिष्ट तर्क।
1779
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 पथ पहुंच योग्य हैं। मनमाने ढंग से पथ ट्रैवर्सल और संवेदनशील फ़ाइल पहुंच को रोकता है।
1780
EN + हिं Hard
GB What is the DBMS_SCHEDULER package in Oracle PL/SQL and how does it improve upon DBMS_JOB?
IN Oracle PL/SQL में DBMS_SCHEDULER पैकेज क्या है और यह DBMS_JOB में कैसे सुधार करता है?
A
An older version of DBMS_JOB DBMS_JOB का पुराना संस्करण
B
A comprehensive job scheduling framework supporting: complex schedules (calendaring syntax: FREQ=DAILY;BYHOUR=2;BYMINUTE=0) job chains (workflow) job classes with resource limits event-based job triggering and detailed job logging - more feature-rich and reliable than the simpler DBMS_JOB package एक व्यापक जॉब शेड्यूलिंग ढांचा समर्थन करता है: जटिल शेड्यूल (कैलेंडरिंग सिंटैक्स: FREQ = DAILY; BYHOUR = 2; BYMINUTE = 0) जॉब चेन (वर्कफ़्लो) जॉब क्लासेस संसाधन सीमा के साथ इवेंट-आधारित जॉब ट्रिगरिंग और विस्तृत जॉब लॉगिंग - सरल DBMS_JOB पैकेज की तुलना में अधिक सुविधा संपन्न और विश्वसनीय
C
A package for scheduling network requests नेटवर्क अनुरोधों को शेड्यूल करने के लिए एक पैकेज
D
A package identical to DBMS_JOB with different syntax भिन्न सिंटैक्स के साथ DBMS_JOB के समान एक पैकेज
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) DBMS_SCHEDULER advantages over DBMS_JOB: (1) Rich calendaring: REPEAT_INTERVAL=FREQ=WEEKLY;BYDAY=MON,WED,FRI;BYHOUR=6. (2) Job chains: job A completes -> job B starts. (3) Job classes: resource limits per job class. (4) Event-based: trigger on file arrival, queue message. (5) Real-time monitoring. (6) Job programs (reusable program objects). Preferred for all new development.
व्याख्या (हिन्दी) DBMS_JOB की तुलना में DBMS_SCHEDULER के लाभ: (1) रिच कैलेंडरिंग: REPEAT_INTERVAL=FREQ=WEEKLY;BYDAY=MON,WED,FRI;BYHOUR=6। (2) जॉब चेन: जॉब ए पूरा होता है -> जॉब बी शुरू होता है। (3) नौकरी वर्ग: प्रति नौकरी वर्ग संसाधन सीमाएँ। (4) घटना-आधारित: फ़ाइल आगमन पर ट्रिगर, कतार संदेश। (5) वास्तविक समय की निगरानी। (6) जॉब प्रोग्राम (पुन: प्रयोज्य प्रोग्राम ऑब्जेक्ट)। सभी नए विकास के लिए पसंदीदा.
1781
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 पैरामीटर के साथ अपवाद उठाती है तो आंशिक रूप से संशोधित किया जा सकता है (परम परिवर्तनों का कोई रोलबैक नहीं)। ट्रेड-ऑफ़: प्रदर्शन बनाम परमाणुता।
1782
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।
1783
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 अद्वितीय मान के अनुसार केवल एक बार कैल्क() को कॉल करता है (डुप्लिकेट के लिए परिणाम कैश किया जाता है)। इसके लिए आवश्यक: फ़ंक्शन-आधारित इंडेक्स (ओरेकल को पता होना चाहिए कि परिणाम स्थिर है)। चेतावनी: वास्तव में नियतिवादी होना चाहिए अन्यथा कैश गलत परिणाम देगा।
1784
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 लाभों को सम्मिलित करता है और क्रॉस-सत्र, क्रॉस-कॉल कैशिंग जोड़ता है।
1785
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।
1771–1785 of 2982