天天看點

12c-Oracle 12c R2 注意事項:login.sql 改變12.2 Beta 版12.2正式版正式版

日常工作中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/./db_1

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

SQL*Plus: Release ... Beta on Tue Mar  :: 
Copyright (c) , , Oracle.  All rights reserved.

hello
SQL> 
           

12.2正式版

[[email protected] ~]$ cat db2env
export TMP=/tmp
export TMPDIR=$TMP      
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/./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 .. Production on Tue Mar  :: 
Copyright (c) , , Oracle.  All rights reserved.

SQL> 
           

NOTE:

目前目錄的login.sql從12.2正式版已經不在自動運作。

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

SQL*Plus: Release  Beta on Tue Mar  :: 
Copyright (c) , , 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  Beta on Tue Mar  :: 
Copyright (c) , , Oracle.  All rights reserved.

hello
SQL> 
           

正式版

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

SQL*Plus: Release  Production on Tue Mar  :: 
Copyright (c) , , Oracle.  All rights reserved.

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

SQL*Plus: Release  Production on Tue Mar  :: 
Copyright (c) , , 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外還可以執行。