技术开发 频道

Oracle10g新特性——SQL*PLUS的改进

【IT168技术文档】在Oracle 10G中,SQL Plus这一小小而又强大的DBA工具已经得到了显著的改进,包括十分有用的提示和高级文件操作。

SQLPlus的改进

    哪个工具是DBA每天最常用的?除了很多DBA使用图形界面的工具外,使用最多的就是SQL Plus这个命令行方式的工具了。

    尽管在oracle 10G中由于企业管理器的大大增强可能使SQL Plus的地位有所改变,但这个普遍使用的小工具仍然被保留下来了——它对于初学者和有经验的DBA都适用。我们下面将会探讨一下SQL*Plus 10.1.0.2中一些有用的新特性。但是你必须要有随Oracle 10G软件安装的SQL Plus,而不能使用9i客户端连接10G服务器的9i的SQL Plus。

提示

    我当前是以哪个用户登录的?当前身份是什么?在长时间使用9i的sqlplus后,很多DBA会犯这种“迷糊”。你需要通过查询语句来解决这些迷惑。在10g的sqlplus中,你可以通过设置在SQL>提示标识中增加这些信息了:

SQL> set sqlprompt "_user _privilege> "
通过以上设置,你的sqlplus提示标识就成了以下格式了:

SYS AS SYSDBA>

    这就表明当前的登录帐号是SYS,身份是SYSDBA。请注意在上面语句中使用了两个特殊的预定义道德变量:_user和_privilege,分别定义了当前用户和这个用户的登录

    身份(权限)。现在我们再增加一些其他内容。比如我除了想知道以上信息外,还想知道当前的登录时间:

SQL> set sqlprompt "_user _privilege on _date>" SYS AS SYSDBA on 31-8月 -05>
再增加一个连接信息看,这样就可以指出你登录的是哪个服务器的:

SQL>set sqlprompt "_user on _date at _connect_identifier>" SYS on 31-8月 -05 at teng>
但是前面的当前时间信息只有日期,如果需要精确到当前的确切时间呢:

SYS on 31-8月 -05 at teng>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
会话已更改。

SYS on 2005-08-31 16:20:15 at teng>

你只要将上面的内容存在$ORACLE_HOME/sqlplus/glogin.sql中,那每次登录的提示信息都是你所需要的了。

不再需要双引号
自从internal的登录方式在9i当中不再被支持后,很多DBA就抱怨:如何可以不输入sys用户的密码来维护系统的安全?答案就是在操作系统提示符下用双引号的方法进入:

$sqlplus “/as sysdba”
需要多输一对双引号也引起了不少抱怨。而在10g当中你就无需再输入双引号了:

$sqlplus / as sysdba
增强的文件管理性

    在9i中,当你在sqlplus进行操作时,你会希望将一些有用的语句存下来以便以后使用,这时你可以使用save命令。Save命令会将从最后一次执行save开始以后的所有脚本存下来,这样就会将你执行过的脚本存成分散的文件。如:

SQL> select 1 ... SQL> save 1 Created file 1.sql SQL> select 2 ... SQL> save 2 Created file 2.sql SQL> select 3 ... SQL> save 3 Created file 3.sql
这样存下来1.sql、2.sql、3.slq三个脚本,三个脚本的内容分别为select 1 …、select 2 …、select 3 …。这样的话你就需要手工将他们再合成一个脚本以便以后使用。
0
相关文章