[Oracle]sqlplus 启动参数说明
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Oracle]sqlplus 启动参数说明相关的知识,希望对你有一定的参考价值。
[Oracle]sqlplus 启动参数说明
# su - oracle [grid]
用法 1: sqlplus -H | -V
-H[ELP]:
显示 SQL*Plus 命令的语法和用法,然后返回控制到操作系统中。
-V[ERSION]:
显示 SQL*Plus 的版本号,然后返回控制到操作系统中。
用法 2: sqlplus [ [<option>] [{logon | /nolog}] [<start>] ]
<option> is: [-C <version>] [-L] [-M "<options>"] [-R <level>] [-S]
-C <version> :
设置 SQL*Plus 命令兼容版本。<version> 的格式为“x.y[.z]”。例如, -C 10.2.0
-L[OGON]:
指定如果首次连接不成功则不要再次提示输入用户名和口令。这个选项可用于操作系统脚本中,可防止当数据库服务器没有运行时再次提示输入连接信息。这个选项在 SQL*Plus 图形用户接口中不可用
-M[ARKUP] "<options>":
可使用本选项从查询或脚本生成完全标准的独立的 Web 页面。
可使用 SQLPLUS -MARKUP html ON 或 SET MARKUP HTML ON SPOOL ON 生成标准的 Web 页。SQL*Plus 将使用 <HTML> 和 <BODY> 标签自动生成完整的 HTML 页。在执行 SPOOL OFF 命令或退出 SQL*Plus 时,假脱机文件中的 HTML 标签会被关闭。
在使用 -MARKUP 时,-SILENT 和 –RESTRICT 命令行选项也很有用。
可使用 SET MARKUP HTML ON SPOOL OFF 生成可嵌入到现有 Web 页中的 HTML 输出。通过这种方式生成的输出中没有 <HTML> 和 <BODY>标签。
用 MARKUP HTML ON 可把 HTML 输出生成到 <PRE> 标签中或者 HTML 表格中。输出到表格中时将自动使用标准的HTML <TABLE>、<TR> 和 <TD> 标签来编码查询结果的行和列。当 HTML 选项被设为 ON时默认行为就是输出到 HTML 表中。可通过设置 PREFORMAT ON 来使用 <PRE> 标签生成输出。
使用 SHOW MARKUP 命令可查看 MARKUP 选项的状态。
SQLPLUS –MARKUP 命令和 SET MARKUP 命令具有相同的选项和功能。
注意:markup_option 子句可能需要用引号括起来。
HTML [ON|OFF]:
HTML 是必需有的 MARKUP 参数,它用于指定生成 HTML 类型的输出。HTML 的可选参数 ON 和 OFF 用于指定是否生成 HTML 输出。默认是OFF。
MARKUP HTML ON 使用指定的 MARKUP 选项生成 HTML 输出,或者,在使用 SET MARKUP 的情况下则用当前会话中先前的 SET MARKUP HTML 命令设置的选项。
在会话期间,可根据需要把 HTML 设为 ON 或 OFF。默认是 OFF。
可使用 SQL*Plus 命令 SPOOL filename 把生成的输出写入到假脱机文件中。详细信息请参考下面的SPOOL {ON|OFF}
HEAD text:
通过 HEAD text 选项可指定 <HEAD> 标签中的内容。默认情况下,text是:
<TITLE>SQL*Plus Report</TITLE>
如果 text 中包括空格,则必须把它放到引号中。SQL*Plus 不会检测 text 的 HTML 有效性,因此必须确保所输入的文本对 <HEAD> 标签是有效的。通过这个选项可为特定浏览器或者特殊需要定制输出。
BODY text:
通过 BODY text 选项可为 <BODY> 标签指定属性。默认情况下没有任何属性。如果text 中包括空格,则必须把它放到引号中。SQL*Plus 不会检测text 的 HTML 有效性,因此必须确保所输入的文本对 <BODY> 标签是有效的。通过这个选项可为特定浏览器或者特殊需要定制输出。
TABLE text:
通过 TABLE text 选项可为 <TABLE> 标签指定属性。可使用 TABLE text 选项设置 <TABLE> 标签的属性,例如 BORDER、CELLPADDING、CELLSPACING 和 WIDTH。默认情况下 <TABLE> 的 WIDTH 属性设置为 90%,而 BORDER 属性设置为 1。
如果 text 中包括空格,则必须把它放到引号中。SQL*Plus 不会检测 text 的 HTML 有效性,因此必须确保所输入的文本对 <TABLE> 标签是有效的。通过这个选项可为特定浏览器或者特殊需要定制输出。
ENTMAP {ON|OFF}:
ENTMAP ON 或 OFF 指定了 SQL*Plus 是否用 HTML 实体 <、>、" 和 & 来分别替换特殊字符 <、>、" 和 &。默认情况下 ENTMAP 设为 ON。
在会话期间可根据需要把 ENTMAP 设为 ON 或 OFF。例如,设为 OFF时,SQL*Plus 屏幕输出是:
SQL>SELECT DEPARTMENT_ID, CITY
1 FROM EMP_DETAILS_VIEW
2 WHERE SALARY = 12000;
而设为 ON 时,SQL*Plus 屏幕输出是:
SQL> SELECT DEPARTMENT_ID, CITY
2 FROM EMP_DETAILS_VIEW
3 WHERE SALARY = 12000;
如果没有映射实体,Web 浏览器可能会把数据看作无效的 HTML 并且随后的输出都不能正常显示。使用 ENTMAP OFF 可以编写自己的 HTML 标签来定制输出。
<HEAD> 和 <BODY> 标签中的实体不会被映射,因此必须确保在MARKUP HEAD 和 BODY 选项中使用了有效的实体。
注意:只有在 HTML 选项或 SPOOL 选项设为 ON 时 ENTMAP 才起作用
SPOOL {ON|OFF}:
SPOOL ON 或 OFF 指定 SQL*Plus 是否把 <HTML>、<BODY> 和</BODY>、</HTML> 标签分别写入到 SPOOL filename 命令创建的每个文件的开始和结束处。默认是 OFF。
可在会话期根据需要把 SPOOL 设为 ON 或 OFF。
注意:
必须理解SET MARKUP HTML SPOOL 选项和 SQLPLUS SPOOL filename 命令的区别。
SET MARKUP HTML SPOOL ON 选项用于把 <HTML> 标签写入到假脱机文件中。而只有在使用了 SQLPLUS SPOOL filename 命令后才会创建假脱机文件。
当发布 SPOOL filename 命令时,SQL*Plus 会把几个 HTML 标签写入到假脱机文件中。所写入的标签和它们的默认内容是:
<HTML>
<HEAD>
<TITLE>SQL*Plus Report</TITLE>
<META name="generator" content="SQL*Plus 9.0.1">
</HEAD>
<BODY>
当发布 EXIT、SPOOL OFF 或 SPOOL filename 命令时,SQL*Plus 把下面的标签附加到文件中并关闭文件:
</BODY>
</HTML>
可使用 HEAD 和 BODY 选项指定 <HEAD> 标签内容和 <BODY> 的属性。
PRE[FORMAT] {ON|OFF}:
PREFORMAT ON 或 OFF 指定 SQL*Plus 把输出写入到 <PRE> 标签中还是写到 HTML 表格中。默认值是 OFF,因此默认情况下输出被写入到了HTML 表格中。在会话中可根据需要把 PREFORMAT 设为 ON 或 OFF。
注意:
要使用 <PRE> 标签生成输出报表必须设置 PREFORMAT ON。例如:
SQLPLUS -M "HTML ON PREFORMAT ON"
SET MARKUP HTML ON PREFORMAT ON
MARKUP 用法说明:
现存的没有明确设置 PREFORMAT ON 的脚本将在 HTML 表格中生成输出。如果要在<PRE> 标签中生成输出,则必须设置 PREFORMAT ON。
当在 HTML 表格中生成输出时,一些 SQL*Plus 命令会具有不同的行为。那些用于格式化报表的命令对于 Web 表格式的报表可能具有不同意义。
PAGESIZE 是 HTML 表格的行数,而不是数据行数。HTML 表格的每一行可以包含多个数据行。TTITLE、BTITLE 和列标题每 PAGESIZE 行重复一次。
如果 WRAP 设为 ON,LINESIZE 会对比较长的数据产生影响。根据数据的长度,它们可能会被显示成多行而 Web 浏览器可能会把换行符解释为一个空格。
TTITLE 和 BTITLE 可被输出到行中的三个位置:左、中和右,并且最大行宽被设置为浏览器窗口的 90%。由于这些元素在 Web 报表中被处理的方式不同,它们可能和报表中的主输出数据不能够对齐。TTITLE 和 BTITLE中的实体映射和 MARKUP 命令中指定的 ENTMAP 设置相同。
如果在输出中使用标题,SQL*Plus 将在标题后使用一个新的 HTML 表格显示数据。根据每列中数据宽度的不同,在浏览器中显示的每张表格的列宽可能也不同。
在 HTML 报表中只有当 PREFORMAT 设置为 ON 时,SET COLSEP 和 RECSEP才生成输出。
-R[ESTRICT] <level> :
允许用户禁用几个可以和操作系统交互的命令。这与使用 Product User Profile(PUP)表来禁用命令相类似。然而,若使用本选项禁用命令,则即使没有连接到服务器这些命令也会被禁用并且一直保持到退出 SQL*Plus。
如果没有使用 –R 选项,那么所有的命令都可使用,除非已在 PUP 表中被禁用。
最高限制级别为 -R 3,如果使用了 -R 3,那么 LOGIN.SQL 不会被读取,而GLOGIN.SQL 会被读取但是其中使用的被限制的命令将失败。
各限制级别禁用的命令如下:
命令 Level 1 Level 2 Level 3
EDIT disabled disabled disabled
GET disabled
HOST disabled disabled disabled
SAVE disabled disabled
SPOOL disabled disabled
START,@,@@ disabled
STORE disabled disabled
-S[ILENT]:
设置静默方式,禁止显示所有的 SQL*Plus 信息和提示消息,包括命令提示符、命令的回显和正常启动 SQL*Plus 时显示的欢迎信息。如果省略了用户名或密码 SQL*Plus 会提示输入它们,但提示信息是不可见的。可在其它的程序中用静默方式来调用 SQL*Plus。
在 CGI 脚本或操作系统脚本中用 SQLPLUS –M 命令创建 Web 格式的报表时静默选项是一个很有用的模式。在使用静默选项时 SQL*Plus 的欢迎和提示信息都不会在报表中出现。
<logon> is: {<username>[/<password>][@<connect_identifier>] | / }
[AS {SYSDBA | SYSOPER | SYSASM}] [EDITION=value]
指定数据库帐户用户名, 口令和连接标识符。如果没有连接标识符, SQL*Plus 将连接到默认数据库
/ 表示使用操作系统验证时的默认登录。使用默认登录时不能输入 <connect_identifier>,SQL*Plus 会尝试使用用户名 OPS$name进行登录,其中name 是操作系统用户名。注意,前缀“OPS$”可以被设置为任何其它的字符串。例如,可以在 INIT.ORA 参数文件中把它改为LOGONname 或 USERIDname。
子句 AS SYSDBA, AS SYSOPER 和 AS SYSASM 选项指定以数据库管理员特权进行连接。也可使用 / 和 /NOLOG 来进行特权连接。如果使用这个选项,在大多数操作系统中必须把命令参数放在引号中,例如:
sqlplus "/ as sysdba"
sqlplus "system/password as sysoper"
<connect_identifier> Oracle 连接标识符。其确切的语法依赖于 Oracle 安装时所使用的网络通讯协议。可以是 Oracle 网络服务名或者简单连接方式。
@[<net_service_name> | [//]Host[:Port]/<service_name>]
<net_service_name> Oracle 网络服务名,如果不输入,默认为环境变量 $ORACLE_SID 的值
Host 目标数据库主机名或者IP地址
Port 目标数据库监听端口,如果不输入,默认为1521
<service_name> 目标数据库服务名
/NOLOG 选项仅启动 SQL*Plus 不连接到数据库。要执行任何 SQL 命令,必须首先执行 CONNECT 命令建立一个有效连接。当希望用 SQL*Plus 脚本来提示输入用户名、密码或数据库时,可使用 /NOLOG。这时脚本文件中的第一行不会被假定为包含一个登录信息。
EDITION 指定会话版本的值。
<start> is: @<URL>|<filename>[.<ext>] [<parameter> ...]
指定要执行的脚本文件的名称和参数。可调用位于本地文件系统或 Web 服务器中的脚本。
SQL*Plus 把参数传递给脚本,就像使用 SQL*Plus 的 START 命令执行文件一样。如果没有指定文件扩展名,将使用 SET SUFFIX 命令定义的后缀。默认值是 .sql
注意:
当 SQL*Plus 启动并连接数据库后,一些本地 SQL 文件可能会被执行例如“$ORACLE_HOME/sqlplus/admin/glogin.sql”文件和用户工作目录中的“login.sql”文件 。
范例:
仅启动 SQL*Plus 不登录到数据库
$ sqlplus /nolog
以默认管理员登陆
$ sqlplus / as sysdba
以数据库账户登录
$ sqlplus
$ sqlplus username
$ sqlplus [email protected]
$ sqlplus [email protected]//host/sid
$ sqlplus [email protected]//host:port/sid
$ sqlplus username/password
$ sqlplus username/[email protected]
$ sqlplus username/[email protected]//host/sid
$ sqlplus username/[email protected]//host:port/sid
$ sqlplus username as sysdba
$ sqlplus [email protected] as sysdba
$ sqlplus [email protected]//host/sid as sysdba
$ sqlplus [email protected]//host:port/sid as sysdba
$ sqlplus username/password as sysdba
$ sqlplus username/[email protected] as sysdba
$ sqlplus username/[email protected]//host/sid as sysdba
$ sqlplus username/[email protected]//host:port/sid as sysdba
登录数据库并执行 SQL*Plus 脚本文件
$ sqlplus username/[email protected] @/home/oracle/createdb
$ sqlplus username/[email protected] @/home/oracle/createdb.sql
$ sqlplus username/[email protected] @/home/oracle/createdb.sql 10 10 30 40
以上是关于[Oracle]sqlplus 启动参数说明的主要内容,如果未能解决你的问题,请参考以下文章