Oracle 12c R2 注意事项:login.sql 改变
日常工作中sqlplus是维护数据库使用最多的工具, 通常把一切配置到login.sql中在sqlplus调用时自动运行,以前都是通过SQLPATH或当前目录的方式, 发现直到12.2 beta时还好用,但安装了12.2 正式版后发现没有运行, 后来看到Franck Pachot提到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外还可以执行。
对不起,这篇文章暂时关闭评论。