SQL*PLus帮助手册(SP2-0171)
转自:http://blog.csdn.net/leshami/article/details/8852568
对于经常在SQL*Plus下工作的大师们而言,总是时不时查询SQL*Plus的帮助命令。着实太多了,记不住。
SQL*Plus下直接提供了help命令来帮助描述所有命令的用法。嘎嘎,再也不用查SQL*Plus reference了。
对于Oracle 10g缺省情况下,SQL*Plus的help手册并没有被安装,需要手动安装。
Oracle 10/11g下采用相同的安装方式,下面来描述一下help的安装与使用。
system@CNMMBO> help
SP2-0171: HELP system not available.
robin@SZDB:~> cd $ORACLE_HOME/sqlplus/admin/help
robin@SZDB:/users/oracle/OraHome10g/sqlplus/admin/help> ls
helpbld.sql
robin@SZDB:/users/oracle/OraHome10g/sqlplus/admin/help> head -40 hlpbld.sql
--
-- Copyright (c) Oracle Corporation 1983, 2003.
--
-- NAME
--
--
-- DESCRIPTION
--
--
--
-- USAGE
--
--
--
--
--
--
DEFINE DATAFILE = &1
--
-- Create the HELP table
--
DROP TABLE HELP;
CREATE TABLE HELP
(
) PCTFREE 0 STORAGE (INITIAL 48K PCTINCREASE 0);
GRANT SELECT ON HELP TO PUBLIC;
--
-- Insert the data into HELP.
--
@@&DATAFILE
system@CNMMBO> @$ORACLE_HOME/sqlplus/admin/help/hlpbld.sql helpus.sql
DROP TABLE HELP
ERROR at line 1:
ORA-00942: table or view does not exist
Table created.
Grant succeeded.
...
Commit complete.
View dropped.
--查看刚刚创建的表已经添加了978行
system@CNMMBO> select count(*) from help;
----------
--直接在命令提示符下输入help,则给出SQL*plus help的用法:HELP|? [topic]
--help index or ? index 则列出了当前sqlplus下所有可用命令
system@CNMMBO> help
--切换别的帐户来测试help是否可用
system@CNMMBO> conn goex_admin/xxxxx
Connected.
--下面的测试其他帐户也可以使用,因为在创建时创建了视图其授予了其他用户select 权限
goex_admin@CNMMBO> help index
Enter Help [topic] for help.
--查看每一个命令的具体用法
--直接在提示符下help 或者 ?
goex_admin@CNMMBO> help define
goex_admin@CNMMBO> help accept
--有了它,再也不必为记不住的命令犯愁了。
-- Author : Robinson
-- Blog
以下来自另一文
“SQL*PLUS 帮助不可用”解决步骤
转自:http://www.cnblogs.com/spatial/archive/2009/10/20/1587097.html
SQL*PLUS是oracle管理数据库最常用的一个CMD界面,其中的帮助系统会给我们执行一些命令带来快捷的指导和帮助,在oracle安装时此功能是默认安装的。有时候由于一些意外原因会失去此项功能,使用帮助系统会出现下面的错误:
SP2-0171: 帮助系统不可用。
以至于带来很多的不便和麻烦。下面是解决此问题的方法,也是官方推荐的方法步骤,在oracle帮助文档中均可获知,此处只是针对相应环境实践操作,给大家提供一个方便。
实践oracle版本信息:
SQL> select * from v$version;
BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 – Production
以system帐户登陆查询help情况:
SQL> conn system
输入口令:
已连接。
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帮助系统实则查询的是一张system帐户维护的help表,可以打开hlpbld.sql脚本仔细研究一下。如下表help模式定义摘取hlpbld.sql脚本:
CREATE TABLE HELP
(
) PCTFREE 0 STORAGE (INITIAL 48K PCTINCREASE 0);
Helpus.sql脚本则是对help表进行内容的insert,下面即是其插入的内容(截取一部分):
INSERT INTO HELP VALUES ('@', 1, NULL);
INSERT INTO HELP VALUES ('@', 2, ' @ ("at" sign)');
INSERT INTO HELP VALUES ('@', 3, ' -------------');
INSERT INTO HELP VALUES ('@', 4, ' Runs the SQL*Plus statements in the specified script. The script can be');
INSERT INTO HELP VALUES ('@', 5, ' called from the local file system or a web server.');
INSERT INTO HELP VALUES ('@', 6, NULL);
INSERT INTO HELP VALUES ('@', 7, ' @ {url|file_name[.ext]} [arg ...]');
INSERT INTO HELP VALUES ('@', 8, NULL);
INSERT INTO HELP VALUES ('@', 9, ' where url supports HTTP and FTP protocols in the form:');
INSERT INTO HELP VALUES ('@', 10, NULL);
INSERT INTO HELP VALUES ('@', 11, '
INSERT INTO HELP VALUES ('@', 12, NULL);
INSERT INTO HELP VALUES ('@@', 1, NULL);
以system帐户登陆也可查询其help表定义:
SQL> conn system
输入口令:
已连接。
SQL> desc help
也可以验证help表的定义,正好是帮助系统的内容所在。
Ok,SQL*PLUS的帮助系统大致其问题解决是这样的,具体的细节探索大家可以参考其oracle文档和脚本,来进一步研究oracle的内容。