首页 » ORACLE [C]系列, ORACLE 9i-23c » Oracle 12c R2 注意事项:login.sql 改变

Oracle 12c R2 注意事项:login.sql 改变

日常工作中sqlplus是维护数据库使用最多的工具, 通常把一切配置到login.sql中在sqlplus调用时自动运行,以前都是通过SQLPATH或当前目录的方式, 发现直到12.2 beta时还好用,但安装了12.2 正式版后发现没有运行, 后来看到提到12.2 因为安全特性的原因,如果没有配置ORACLE_PATH环境变量指定,当前目录中的login.sql默认不再自动执行。

# 12.2 Beta 版
[oracle@anbob ~]$ env|grep ORA
ORACLE_SID=orcl
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1

[oracle@anbob ~]$ cat login.sql
prom hello
[oracle@anbob ~]$ sqlplus /nolog

SQL*Plus: Release 12.2.0.0.0 Beta on Tue Mar 14 10:26:24 2017
Copyright (c) 1982, 2015, Oracle.  All rights reserved.

hello
SQL> 

# 12.2正式版
[oracle@anbob ~]$ cat db2env
export TMP=/tmp
export TMPDIR=$TMP      
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export ORACLE_SID=anbob
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
alias sqlplus="rlwrap sqlplus"

[oracle@anbob ~]$ . db2env

[oracle@anbob ~]$ sqlplus /nolog

SQL*Plus: Release 12.2.0.1.0 Production on Tue Mar 14 10:27:12 2017
Copyright (c) 1982, 2016, Oracle.  All rights reserved.

SQL> 

NOTE:
当前目录的login.sql从12.2正式版已经不在自动运行。

[oracle@anbob ~]$ export SQLPATH=/home/oracle/sql
[oracle@anbob ~]$ sqlplus /nolog                 

SQL*Plus: Release 12.2.0.0.0 Beta on Tue Mar 14 10:40:04 2017
Copyright (c) 1982, 2015, Oracle.  All rights reserved.

hello
SQL> EXIT
[oracle@anbob ~]$ unset SQLPATH                  
[oracle@anbob ~]$ export ORACLE_PATH=/home/oracle/sql
[oracle@anbob ~]$ sqlplus /nolog                     

SQL*Plus: Release 12.2.0.0.0 Beta on Tue Mar 14 10:40:25 2017
Copyright (c) 1982, 2015, Oracle.  All rights reserved.

hello
SQL> 

# 正式版
[oracle@anbob ~]$ export SQLPATH=/home/oracle/sql    
[oracle@anbob ~]$ sqlplus /nolog                

SQL*Plus: Release 12.2.0.1.0 Production on Tue Mar 14 10:45:34 2017
Copyright (c) 1982, 2016, Oracle.  All rights reserved.

SQL> exit
[oracle@anbob ~]$ export ORACLE_PATH=/home/oracle/sql
[oracle@anbob ~]$ sqlplus /nolog                     

SQL*Plus: Release 12.2.0.1.0 Production on Tue Mar 14 10:46:08 2017
Copyright (c) 1982, 2016, Oracle.  All rights reserved.

hello
SQL> 

NOTE:
对于过去版本中SQLPATH环境变量在12.2中login.sql已不再自动运行,但是其它脚本依旧可以指定脚本的路径。对于ORACLE_PATH环境变量指定路径后可以自动运行。对于12.2之前的版本含Beta版使用SQLPATH和ORACLE_PATH都可以自己运行。 关于12.2中sqlplus的环境变量配置参考http://docs.oracle.com/database/122/SQPUG/configuring-SQL-Plus.htm#SQPUG012

Summary:
在12.2版本中当前目录下的login.sql不再自动执行,可以通过ORACLE_PATH指定路径解决,如[ORACLE_PATH=/home/oracle/scripts;. ] 配置多个路径指定当前路径。也可以配置以前的SQLPATH环境变量,除了login.sql外还可以执行。

打赏

,

对不起,这篇文章暂时关闭评论。