I noticed a error in my code for setting PLSCOPE_SETTINGS and PLSQL_WARNINGS. QuicTip Logon.sql What I did was get the instance name out of v$instance to figure out if I was connecting to a production environment or one of the lower environments. The problem with this is, not everyone is going to have permissions to select on sys.v_$instance. The better way to do this is to use sys_context to get the instance name. This way, you won’t have to chase down additional privileges from your DBA.
<code> select sys_context('userenv','instance_name') into sInst from dual; </code> Here is the corrected code for my logon.sql <code> DECLARE sInst varchar2(1); BEGIN -- rlockard: 2018/02/23 commented out getting instance name from v$instance. -- used the more apporiate sys_context('userenv','instance_name') --select upper(SUBSTR(instance_name, 1,1)) --INTO sInst --FROM SYS.V_$INSTANCE; select sys_context('userenv','instance_name') into sInst from dual; -- test to see if this is a production instance -- all production instances start with P so ... -- if it's not a production instance set up -- session properties approiate for dev / test / sandbox. IF sInst != 'P' THEN execute immediate 'ALTER SESSION SET PLSCOPE_SETTINGS=' || '''IDENTIFIERS:ALL'''; execute immediate 'ALTER SESSION SET PLSQL_WARNINGS=' || '''ENABLE:ALL'''; END IF; END; / </code>