Finding database version with DBMS_UTILITY.DB_VERSION
This very short article comes from a post to comp.databases.oracle.server in answer to a question on how to get the database version using PL/SQL. This simple example program in PL/SQL using DBMS_UTILITY.DB_VERSION shows how the version and compatibility can be found. Here it is:
SQL> set serveroutput on size 1000000 SQL> l 1 declare 2 lv_version varchar2(100):=''; 3 lv_compat varchar2(100):=''; 4 begin 5 dbms_utility.db_version(lv_version,lv_compat); 6 dbms_output.put_line('version = '||lv_version); 7 dbms_output.put_line('compatability = '||lv_compat); 8 exception 9 when others then 10 dbms_output.put_line(sqlerrm); 11* end; SQL> / version = 9.2.0.1.0 compatability = 9.2.0.0.0 PL/SQL procedure successfully completed. SQL>
Running my privilege check script for dbms_utility shows that it is available for public use:
SQL> who_can_access: Release 1.0.0.0.0 - Production on Thu Mar 11 15:09:27 2004 Copyright (c) 2004 PeteFinnigan.com Limited. All rights reserved. get user input NAME OF OBJECT TO CHECK [USER_OBJECTS]: dbms_utility OWNER OF THE OBJECT TO CHECK [USER]: sys OUTPUT METHOD Screen/File [S]: FILE NAME FOR OUTPUT [priv.lst]: OUTPUT DIRECTORY [/tmp]: Checking object => SYS.DBMS_UTILITY ==================================================================== Object type is => PACKAGE (TAB) Privilege => EXECUTE is granted to => Role => PUBLIC PL/SQL procedure successfully completed. For updates please visit /tools.htm SQL>
That's , a simple example of the use of the built in package DBMS_UTILITY.DB_VERSION available for public use. DBMS_UTILITY.DB_VERSION is an alternative to using simple SQL commands to get the compatibility from v$parameter and the versions from v$version techniques.
Back