暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 Anbob 2017-03-15
1291
日常工作中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外还可以执行。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论