“SQL*PLUS帮助不可用”解决步骤
SQL*PLUS是oracle管理数据库最常用的一个CMD界面,其中的帮助系统会给我们执行一些命令带来快捷的指导和帮助,在oracle安装时此功能是默认安装的。有时候由于一些意外原因会失去此项功能,使用帮助系统会出现下面的错误:
SP2-0171:帮助系统不可用。
以至于带来很多的不便和麻烦。下面是解决此问题的方法,也是官方推荐的方法步骤,在oracle帮助文档中均可获知,此处只是针对相应环境实践操作,给大家提供一个方便。
以system帐户登陆查询help情况:
SQL> conn XXX
输入口令:
已连接。
SQL> help
SP2-0171:帮助系统不可用。
下面是重建帮助系统的步骤:
1,执行$ORACLE_HOME/sqlplus/admin/help/hlpbld.sql脚本,创建help帮助内容的表模式。
SQL> @E:\app\Administrator\product\11.1.0\db_1\sqlplus\admin\help\hlpbld.sql
2,执行$ORACLE_HOME/sqlplus/admin/help/helpus.sql脚本,则自动填充help内容
SQL> @E:\app\Administrator\product\11.1.0\db_1\sqlplus\admin\help\helpus.sql
3,查看help,则SQL*PLUS,则帮助系统可用
SQL> help
HELP
----
Accesses this command line help system. Enter HELP INDEX or ? INDEX
for a list of topics.
You can view SQL*Plus resources at
http://www.oracle.com/technology/tech/sql_plus/
and the Oracle Database Library at
http://www.oracle.com/technology/documentation/
HELP|? [topic]
Help帮助系统实则查询的是一张system帐户维护的help表,我们如果打开hlpbld.sql脚本的仔细研究一下的话,既可以发现其三昧,如下表help模式定义摘取hepbld.sql脚本:
CREATE TABLE HELP
(
TOPIC VARCHAR2 (50) NOT NULL,
SEQ NUMBER NOT NULL,
INFO VARCHAR2 (80)
) PCTFREE 0 STORAGE (INITIAL 48K PCTINCREASE 0);
Helpus.sql脚本则是对help表进行内容的insert.
以system帐户登陆也可查询其help表定义:
SQL> conn system
输入口令:
已连接。
SQL> desc help
名称 是否为空?类型
----------------------------------------- -------- -------------------------
TOPIC NOT NULL VARCHAR2(50)
SEQ NOT NULL NUMBER
INFO VARCHAR2(80)
也可以验证help表的定义,正好是帮助系统的内容所在。
Ok,SQL*PLUS的帮助系统问题解决。