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

पीएल/एसक्यूएल में एक चर के प्रकार को कैसे देखें?

आप पीएल/स्कोप का उपयोग करके यह फ़ंक्शन बना सकते हैं। लेकिन यह अनाम ब्लॉक के साथ काम नहीं करेगा, और आपको चर को एक स्ट्रिंग के रूप में संदर्भित करने की आवश्यकता होगी।

create or replace function get_plsql_type_name
(
    p_object_name varchar2,
    p_name varchar2
) return varchar2 is
    v_type_name varchar2(4000);
begin
    select reference.name into v_type_name
    from user_identifiers declaration
    join user_identifiers reference
        on declaration.usage_id = reference.usage_context_id
        and declaration.object_name = reference.object_name
    where
        declaration.object_name = p_object_name
        and declaration.usage = 'DECLARATION'
        and reference.usage = 'REFERENCE'
        and declaration.name = p_name;

    return v_type_name;
end;
/

उदाहरण:

alter session set plscope_settings = 'IDENTIFIERS:ALL';

create or replace type my_weird_type is object
(
    a number
);

create or replace procedure test_procedure is
    var1 number;
    var2 integer;
    var3 my_weird_type;
    subtype my_subtype is pls_integer range 42 .. 43;
    var4 my_subtype;
begin
    dbms_output.put_line(get_plsql_type_name('TEST_PROCEDURE', 'VAR1'));
    dbms_output.put_line(get_plsql_type_name('TEST_PROCEDURE', 'VAR2'));
    dbms_output.put_line(get_plsql_type_name('TEST_PROCEDURE', 'VAR3'));
    dbms_output.put_line(get_plsql_type_name('TEST_PROCEDURE', 'VAR4'));
end;
/

begin
    test_procedure;
end;
/

NUMBER
INTEGER
MY_WEIRD_TYPE
MY_SUBTYPE


  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 के RAW(16) से .NET के GUID में कनवर्ट करें

  2. sqldeveloper त्रुटि संदेश:नेटवर्क एडेप्टर कनेक्शन त्रुटि स्थापित नहीं कर सका

  3. आप कैसे बता सकते हैं कि पीएल/एसक्यूएल पैकेज, प्रक्रिया, या फ़ंक्शन का उपयोग किया जा रहा है या नहीं?

  4. एसक्यूएल - अधिकतर क्रमबद्ध अनुक्रमिक श्रृंखला में लापता int मान खोजें

  5. Oracle में सभी कैश्ड आइटम को कैसे साफ़ करें