在11.2中,Oracle新增了版本的功能,而随之一些工具都对于版本功能有所支持,比如11.2中,sqlplus在连接数据库时就可以指定当前数据库连接到哪个版本上。
需要说明的是,这种连接版本方式的优先级是最高的,它的优先级高于ORA_EDITION环境变量,更高于数据库默认版本,看一个简单的例子:
D:\>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 9月 27 08:21:47 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> set pages 100 lines 120
SQL> select username from dba_users where editions_enabled = 'Y';
未选定行
SQL> create user u_e identified by u_e default tablespace test enable editions;
用户已创建。
SQL> grant connect, resource, dba to u_e;
授权成功。
SQL> create edition e1;
版本已创建。
SQL> conn u_e/u_e
已连接。
SQL> select sys_context('USERENV', 'CURRENT_EDITION_NAME') from dual;
SYS_CONTEXT('USERENV','CURRENT_EDITION_NAME')
--------------------------------------------------------------------------------
ORA$BASE
SQL> conn u_e/u_e edition=e1
已连接。
SQL> select sys_context('USERENV', 'CURRENT_EDITION_NAME') from dual;
SYS_CONTEXT('USERENV','CURRENT_EDITION_NAME')
--------------------------------------------------------------------------------
E1
SQL> alter database default edition = e1;
数据库已更改。
SQL> conn u_e/u_e
已连接。
SQL> select sys_context('USERENV', 'CURRENT_EDITION_NAME') from dual;
SYS_CONTEXT('USERENV','CURRENT_EDITION_NAME')
--------------------------------------------------------------------------------
E1
SQL> conn u_e/u_e edition=ora$base
已连接。
SQL> select sys_context('USERENV', 'CURRENT_EDITION_NAME') from dual;
SYS_CONTEXT('USERENV','CURRENT_EDITION_NAME')
--------------------------------------------------------------------------------
ORA$BASE
除了sqlplus之外,OCI和JDBC也支持在连接时选择版本进行连接。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-708339/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/4227/viewspace-708339/