Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Why can't I find LNNVL in DBA_PROCEDURES

LNNVL exists, because the following statement works.

 select 1 from dual where not(LNNVL(1=1));

But I can’t find it in DBA_PROCEDURE

SELECT *
  FROM SYS.DBA_PROCEDURES
 WHERE UPPER (procedure_name) = 'LNNVL';

NULL

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

It’s a built-in procedure but REGXXP_LIKE too and the following query return a line

 SELECT *
  FROM SYS.DBA_PROCEDURES
 WHERE UPPER (procedure_name) = 'REGEXP_LIKE';

>Solution :

The regexp_like in the dba_procedures view is the version in the STANDARD package.

Essentially that means that it’s available in PL/SQL; so you can do:

bool_var := regexp_like(...);

But you can’t do:

bool_var := lnnvl(...);

That dictionary view is nothing to do with the built-in functions available from SQL, only those available in PL/SQL. Not all built-in functions are available in PL/SQL, so they aren’t all replicated in the STANDARD package – you can use that same dictionary view or describe standard to see what is defined in that package.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading