Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

SQL में संदर्भित स्तंभ नाम और तालिका नाम खोजें

मेरे पास आपके लिए एक बढ़िया समाधान है, लेकिन आपको दो काम करने होंगे:

  1. SQL को PL/SQL प्रोग्राम यूनिट के अंदर रखें। तो, हाँ, आपके द्वारा उल्लिखित संग्रहीत कार्यविधि के लिए।

  2. 12.2 इंस्टेंस पर उस प्रोग्राम यूनिट और सभी आश्रित तालिकाओं (अर्थात अपना एप्लिकेशन कोड इंस्टॉल करें) को संकलित करें (आप 12.2 को http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html या आप Cloud.oracle.com पर एक Exadata एक्सप्रेस क्लाउड सेवा खरीद सकते हैं या Cloud.oracle.com/tryit पर एक महीने के लिए बिना किसी लागत के एक का उपयोग करने के लिए $300 का क्रेडिट प्राप्त कर सकते हैं।

12.2 महत्वपूर्ण है क्योंकि जिस सुविधा का आप वास्तव में उपयोग करना चाहते हैं उसे पीएल/स्कोप कहा जाता है और यह एक कंपाइलर टूल है जो पीएल/एसक्यूएल पहचानकर्ता (11.1 के रूप में) और पीएल/एसक्यूएल (12.2 के अनुसार) के अंदर एसक्यूएल उपयोग के बारे में जानकारी एकत्र करता है।

CREATE TABLE my_data (n NUMBER)
/

ALTER SESSION SET plscope_settings='identifiers:all, statements:all'
/

CREATE OR REPLACE PROCEDURE my_procedure (n_in IN NUMBER)
   AUTHID DEFINER
IS
   l_n           my_data.n%TYPE;

   CURSOR all_data_cur
   IS
          SELECT *
            FROM my_data
      FOR UPDATE OF n;
BEGIN
   INSERT INTO my_data (n)
        VALUES (n_in);

END;
/

  SELECT idt.line,
         idt.owner || '.' || idt.object_name code_unit, 
         idt.name column_name,
         RTRIM (src.text, CHR (10)) text
    FROM all_identifiers idt, all_source src
   WHERE     idt.usage = 'REFERENCE'
         AND idt.TYPE = 'COLUMN'
         AND idt.line = src.line
         AND idt.object_name = src.name
         AND idt.owner = src.owner
         AND idt.object_name = 'MY_PROCEDURE'
ORDER BY code_unit, line
/

LINE CODE_UNIT          COLUMN_NAME TEXT  
4   STEVEN.MY_PROCEDURE N           l_n           my_data.n%TYPE;
10  STEVEN.MY_PROCEDURE N           FOR UPDATE OF n;
12  STEVEN.MY_PROCEDURE N           INSERT INTO my_data (n)

आशा है कि इससे मदद मिलेगी!

livesql.oracle.com पर पीएल/स्कोप के और भी कई उदाहरण। बस "pl/scope" (duh) खोजें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AWS EC2 से AWS RDS में Oracle डेटाबेस कैसे माइग्रेट करें?

  2. डिकोड उपनाम पर ORA-00904 अमान्य पहचानकर्ता

  3. मैं DESCRIBE कमांड का उपयोग किए बिना Oracle में किसी तालिका का वर्णन कैसे कर सकता हूं?

  4. PLSQL बाइंड चर और होस्ट चर के बीच क्या अंतर है

  5. लिक्विबेस लॉक - कारण?