हाल ही में, मैंने देखा कि किसी ने संकेत दिया है कि उनके पास कुछ साल पहले साइट पर ओरेकल तकनीक थी। इस तकनीक ने SQL*Plus को बदल दिया था ताकि इसके फीडबैक में केवल "XX पंक्तियों का चयन" के बजाय "लगभग XX पंक्तियों का चयन" जैसा कुछ कहा जा सके। उन्होंने सोचा कि तकनीक ने ऐसा कैसे किया। मुझे बस इसमें खोदना था और इसके साथ कुछ मजा करना था। मैं फीडबैक टेक्स्ट को बदलने में सक्षम था और यह अब मेरे लिए SQL*प्लस में कैसा दिखता है:
SQL> फ़ीडबैक सेट करें 1
SQL> उन all_users से * चुनें जहां rownum <3;USERNAME USER_ID बनाया गया --------------------------- ----------------------- SYS 0 30-JAN-09 System 5 30-JAN-09 लगभग 2 पंक्तियाँ चयनित। देना या लेना।
SQL> दोहरे से sysdate चुनें;
SYSDATE
———
22-AUG-12
1 पंक्ति चयनित। बस एक।
तो फीडबैक टेक्स्ट बदलने के लिए मुझे एसक्यूएल * प्लस कैसे मिला? सरल।
1. $ORACLE_HOME/sqlplus/mesg
2 पर जाएं। sp1us.msg और sp1us.msb की बैकअप फ़ाइलें बनाएं (ध्यान दें, मैं यूएस में हूं इसलिए मेरा इंस्टॉल "हम" है, आपके पास एक अलग दो-चार देश कोड हो सकता है)।
3. टेक्स्ट एडिटर में sp1us.msg खोलें। मैंने फ़ाइल में ये प्रविष्टियाँ बनाई हैं:00005,0, "1 row selected. Just one."
// *Cause:
// *Action:
00006,0, "approximately %ld rows selected. Give or take."
// *Cause:
// *Action:
4. अपने परिवर्तन सहेजें और संपादक से बाहर निकलें।
5. संदेश फ़ाइल को बाइनरी msb फ़ाइल में संकलित करें।lmsgen sp1us.msg sqlplus sp1 american
यही सब है इसके लिए!
मैंने इसके साथ थोड़ा और मजा करने का फैसला किया। इस बार, मैं ORA-00942 संदेश के साथ दिए गए संदेश को बदलना चाहता था। इसलिए मैंने $ORACLE_HOME/rdbms/mesg/oraus.msg इसका और इसकी बाइनरी msb फ़ाइल का बैकअप बनाने के बाद संशोधित किया। तब मैंने msg फ़ाइल को संकलित करने के लिए LMSGEN का उपयोग किया:lmsgen oraus.msg rdbms ora american
अब जब मैं एक गैर-मौजूद तालिका के लिए क्वेरी करता हूं, तो मुझे निम्न मिलता है:SQL> select * from no_table;
select * from no_table
*
ERROR at line 1:
ORA-00942: this is not the table you are looking for
बेशक, यह सिर्फ मनोरंजन के लिए है। मैं इसे उत्पादन के माहौल में कभी नहीं करूंगा। और आप कभी नहीं जानते कि कब कोई पैच इन फ़ाइलों को संशोधित करने वाला है, इसलिए कस्टम संदेशों को बनाए रखना लंबे समय में समय लेने वाला हो सकता है। लेकिन इसके साथ खेलने में मजा आता है और अगली बार ओआरए त्रुटि हिट होने पर किसी को कुछ भ्रम होता है।