开启Oracle的帮助系统--不再害怕忘记命令的尴尬

10/24/2009来源:Oracle教程人气:2621

作者: 三十而立
时间:2009年10月23日 8:04:39
请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“inthirties(三十而立)”和出处”http://blog.csdn.net/inthirties/archive/2009/10/23/4718450.aspx”,深入讨论可以联系inthirties@Gmail.com。
在进行数据库管理的时候,忽然一下记不起命令和语法,特别是给客户做演示,或者是现场实施,有没有办法查手册,没有办法,实在是尴尬,我们使用linux的时候,也是通过大量的命令行命令来进行系统的维护,如此多的命令,难免会对一些命令遗忘,不过linux里的man命令,可以帮我们找到相应命令的大部分的用法描述,根据这个man命令,我们就可以减少开篇碰到的这样的尴尬了。

其实在Oracle里也有这样的一个在线帮助的系统,不过可能是大家么有安装,或者安装的默认的形式,所以不知道Oracle已经提供这样的方式,或者默认的方式功能介绍的太模糊,而慢慢的淡化了这个工具的使用,

今天这里,我就带着大家一起安装开启和扩展我们的Oracle的在线帮助系统

Oracle的在线帮助系统是通过ystem.help这个表来实现的,这个表里储存了Oracle里sql信息

敲入

SQL>desc system.help;

名称                                      是否为空? 类型

----------------------------------------- -------- --------------

TOPIC                                     NOT NULL VARCHAR2(50)

SEQ                                       NOT NULL NUMBER

INFO                                               VARCHAR2(80)

这里的topic就是帮助主题。

如果有这个表存在,就是你已经安装了Oracle的帮助系统了。

你可以继续看看

SQL>select count(1) from system.help;

COUNT(*)
----------
978

这里你安装的帮助主题是978条(版本不同,这里的数目上有一定的差异,以你的实际数据为准),不过这里太少了, 你没有安装扩展的帮助系统,这里的帮助太少,对我们还是没有实际意义。

不过,虽然是默认的安装,没有安装扩展,不过我们还是可以先试试

SQL>? create index;

或者

SQL>help create index;

这里的?和help就是帮助的命令。

是不是出了帮助信息了,不过好像内容不是很丰富,太少了,对我们没有太多的帮助,下面我就带着大家一起来开启帮助系统,并且安装我这里提供的扩展系统,得到更多的帮助。

在$ORACLE_HOME/sqlplus/admin/help里我们可以找到下面的文件,

helpbld.sql
helpdrop.sql
helpus.sql
hlpbld.sql
这四个文件,

这就是oracle自带的help脚本。可以执行

helpbld.sql来安装oracle默认的help, 。

这里我们需要用system这个帐号登录,并执行这个sql文件, 还是用system来执行,这里会提示你输入两个参数,看了这个源文件,运行时两个参数一个是当前路径,一个是helpus.sql, 执行完就安装了help,

就可以使用我上面的那些方式。这个是默认会安装的。

安装完这里的helpbld.sq也就开启了我们Oracle的帮助系统,但是这里只是默认的安装,主题太少,而且帮助内容太简单。

大家下在我给提供的 help.sql

下载后可以先运行

上面目录里提供的 helpdrop.sql

SQL>@!helpdrop.sql

然后执行SQL>@!helpbld.sql

不过和上面不同的是,这里的第二个参数是你的help.sql的路径, 执行过程中有对象不在的错误,或者是是有一些和默认的有冲突,可以忽略这些错误。 你可以分析一下,应该是没有关系的。

现在我们在来看看帮助吧

成功以后,我们执行一下


SQL> select count(*) from system.help ;
COUNT(*)
----------
5085

多了很多条了

呵呵呵一下多了好多条了哟


SQL> help create database;

引用:
CREATE DATABASE
---------------

Use this command to create a database, making it available for
general use, with the following options:

* to establish a maximum number of instances, data files, redo
log files groups, or redo log file members
* to specify names and sizes of data files and redo log files
* to choose a mode of use for the redo log
* to specify the national and database character sets

Warning: This command PRepares a database for initial use and erases
any data currently in the specified files. Only use this command
when you understand its ramifications.
.......这里还要好多有关create table的帮助信息,我就不写了。


有了这个帮助系统,要查一个命令的详解,正是太方便叻。

有这样的帮助,我们再也不怕忘记命令的语法的尴尬了。

运行一下? topic就可以了 哟

查一查 topic

比如 我们忘记了有关database link的命令

select distinct topic from system.help where topic like upper('%database%');

DROP DATABASE LINK

CREATE DATABASE LINK

然后根据这里的topic来运行

SQL> ? create database link;

 CREATE DATABASE LINK

 --------------------

 Use this command to create a database link. A database link is a

 schema object in the local database that allows you to access

 objects on a remote database or to mount a secondary database in

 read-only mode. The remote database can be either an Oracle or a

 non-Oracle system.

 CREATE [PUBLIC] DATABASE LINK dblink

   [CONNECT TO user IDENTIFIED BY passWord]

   [USING 'connect_string']

 For detailed information on this command, see the Oracle8 Server SQL

 Reference.

太好了吧。这样再也不用担心忘记命令了,不过,作为一个熟练的DBA人员,记住大部分的命令,而且熟练的在客户面前敲出来,能获得更好的赞赏哟。所以这个工具是一个以备不时不需的作用,而不要成为你偷懒的工具了哟。