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
2326
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 ... केवल चयन विशेषाधिकार वाला कॉलर केवल चयन के साथ प्रक्रिया चलाता है - आगे नहीं बढ़ सकता। सुरक्षा-संवेदनशील कार्यों के लिए इनवॉकर अधिकारों का उपयोग करें।
2327
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 के साथ संसाधित करता है।
2328
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()): जैसे ही फ़ंक्शन उन्हें उत्पन्न करता है, तुरंत पंक्तियों को वापस करना शुरू कर देता है। सभी पंक्तियों को स्मृति में रखने की आवश्यकता नहीं है. समानांतर तालिका फ़ंक्शन निष्पादन सक्षम करता है।
2329
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 फ़ील्ड के साथ रिकॉर्ड करें। प्रकार की बेमेल त्रुटियों को रोकता है और स्कीमा विकसित होने पर रखरखाव को कम करता है।
2330
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 के बीच का कोड संकलन समय पर शामिल/बहिष्कृत किया जाता है (रनटाइम नहीं)। इसके लिए उपयोग करें: डिबग कोड, संस्करण-विशिष्ट व्यवहार, रनटाइम आईएफ ओवरहेड के बिना पर्यावरण-विशिष्ट तर्क।
2331
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 पथ पहुंच योग्य हैं। मनमाने ढंग से पथ ट्रैवर्सल और संवेदनशील फ़ाइल पहुंच को रोकता है।
2332
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) जॉब प्रोग्राम (पुन: प्रयोज्य प्रोग्राम ऑब्जेक्ट)। सभी नए विकास के लिए पसंदीदा.
2333
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 पैरामीटर के साथ अपवाद उठाती है तो आंशिक रूप से संशोधित किया जा सकता है (परम परिवर्तनों का कोई रोलबैक नहीं)। ट्रेड-ऑफ़: प्रदर्शन बनाम परमाणुता।
2334
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।
2335
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.
व्याख्या (हिन्दी) 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). इसके लिए आवश्यक: फ़ंक्शन-आधारित इंडेक्स (ओरेकल को पता होना चाहिए कि परिणाम स्थिर है)। चेतावनी: वास्तव में नियतिवादी होना चाहिए अन्यथा कैश गलत परिणाम देगा।
2336
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 लाभों को सम्मिलित करता है और क्रॉस-सत्र, क्रॉस-कॉल कैशिंग जोड़ता है।
2337
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।
2338
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 डेटाबेस एक्शन ट्रैकिंग, स्वायत्त लेनदेन लॉग इंसर्ट।
2339
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 बाइंड_वर्स क्लॉज का उपयोग करें।
2340
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 पुनरावृत्ति से प्रभावित पंक्तियाँ देता है।
2326–2340 of 2982