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

SQL चयन कथन में पैकेज स्थिरांक का उपयोग कैसे करें?

आप नहीं कर सकते।

SQL स्टेटमेंट में इस्तेमाल होने वाले पब्लिक पैकेज वेरिएबल के लिए, आपको बाहरी दुनिया के लिए वैल्यू को एक्सपोज करने के लिए एक रैपर फंक्शन लिखना होगा:

SQL> create package my_constants_pkg
  2  as
  3    max_number constant number(2) := 42;
  4  end my_constants_pkg;
  5  /

Package created.

SQL> with t as
  2  ( select 10 x from dual union all
  3    select 50 from dual
  4  )
  5  select x
  6    from t
  7   where x < my_constants_pkg.max_number
  8  /
 where x < my_constants_pkg.max_number
           *
ERROR at line 7:
ORA-06553: PLS-221: 'MAX_NUMBER' is not a procedure or is undefined

एक रैपर फ़ंक्शन बनाएँ:

SQL> create or replace package my_constants_pkg
  2  as
  3    function max_number return number;
  4  end my_constants_pkg;
  5  /

Package created.

SQL> create package body my_constants_pkg
  2  as
  3    cn_max_number constant number(2) := 42
  4    ;
  5    function max_number return number
  6    is
  7    begin
  8      return cn_max_number;
  9    end max_number
 10    ;
 11  end my_constants_pkg;
 12  /

Package body created.

और अब यह काम करता है:

SQL> with t as
  2  ( select 10 x from dual union all
  3    select 50 from dual
  4  )
  5  select x
  6    from t
  7   where x < my_constants_pkg.max_number()
  8  /

         X
----------
        10

1 row selected.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL में निर्दिष्ट कॉलम और सभी का चयन गलत क्यों है?

  2. पैरामीटर के साथ Oracle में फ़ंक्शन कैसे निष्पादित करें

  3. EM ग्रिड नियंत्रण को नए नोड्स तक बढ़ाएँ

  4. क्या Oracle में एक से अधिक बार प्रक्रिया के निष्पादन से बचने का सबसे अच्छा तरीका है?

  5. Oracle में UTL_FILE पैकेज का उपयोग करके ExcelSheet में लेखन