isql 实用程序是使用 Open Client API 的命令行 Interactive SQL 实用程序。
您不能在 isql 中创建用户定义的数据库选项。如果需要添加自己的数据库选项,请改用 dbisql Interactive SQL 实用程序。
isql
[-b] [-e] [-F] [-p] [-n] [-v] [-W] [-X] [-Y] [-Q]
[-a display_charset]
[-A packet_size]
[-c cmdend]
[-D database]
[-E editor]
[-h header]
[-H hostname]
[-i inputfile]
[-I interfaces_file]
[-J client_charset]
[-K keytab_file]
[-l login_timeout]
[-m errorlevel]
[-o outputfile]
[-P password]
[-R remote_server_principal]
[-s colseparator]
[-S server_name]
[-t timeout]
-U username
[-V [security_options]]
[-w columnwidth]
[-z locale_name]
[-Z security_mechanism]
[--conceal]
[--URP]
下表列出了 isql 实用程序的可用选项。
isql 选项选项说明-b禁用表头输出的显示内容。-e回写输入。-F启用 FIPS 标记。指定 -F 参数后,服务器会在遇到非标准 SQL 命令时返回一条消息。此选项不会禁用 SQL 扩展。发出非 ANSI SQL 命令时,处理完成。 -p打印性能统计信息。-n与 -e 结合使用时,可从输出文件中的回写输入行内移除编号和提示符号 (>)。 -v打印 isql 的版本号和版权消息,然后退出。 -X启动到服务器的带客户端口令加密的登录连接。-X 启用扩展口令加密连接和口令加密连接,而不使用明文口令重新连接。isql(客户端)向服务器指定,需要口令加密。服务器将返回一个加密密钥,isql 使用该密钥为您的口令加密,服务器则在需要时使用该密钥验证您的口令。 如果 isql 崩溃,系统会创建一个含有您的口令的核心文件。如果未使用加密选项,则口令在文件中以纯文本格式显示。如果使用加密选项,则口令不可读 -W禁用扩展口令和口令加密协商。-Y让 Adaptive Server 使用链接事务。-Q为客户端提供故障转移属性。-aSELECT * FROM sysprocesses值显示在 network_pktsz 标题下。 database>选择用于启动 isql 会话的数据库。 -ENULL。这样不会发生任何转换。若客户端与服务器使用相同的字符集,则使用该设置。 省略 -J 可将字符集设置为平台的缺省字符集。缺省字符集不必是客户端正在使用的字符集。有关字符集和关联标记的详细信息,请参见《Adaptive Server Enterprise 系统管理指南,卷 1》中的“配置客户端/服务器字符集转换”。 -KNULL,请使用不需输入口令的 -P 标记。 -R
如果正在使用线程驱动程序,请将此语法用于 isql_r。
如果正在 IBM 平台中使用线程驱动程序,请将此语法用于 isql。
必须首先将 IQ 环境变量设置为 Adaptive Server 的当前版本所在位置,然后才能使用 isql。
下表列出可在交互式 isql 中执行的命令:
isql 中的可用命令命令说明:r filename将操作系统文件读入命令缓冲区。不要在文件中包含命令终结符;一旦完成编辑后,必须在单独一行上以交互方式输入终结符。:R filename将操作系统文件读入命令缓冲区,然后显示该文件。不要在文件中包含命令终结符;一旦完成编辑后,必须在单独一行上以交互方式输入终结符。use database_name更改当前数据库。!! os_command 执行操作系统命令。位于行开头。> file_name 将 T-SQL 命令的输出重定向到 select @@version go > file_name >> file_name 将 T-SQL 命令的输出附加到 select @@version go >> file_name | command 通过管道将 T-SQL 命令的输出传送到外部命令。以下示例将在 sp_who 生成的列表中查找 "sa" 的所有实例: sp_who go | grep savi (UNIX) edit (Windows) 调用缺省编辑器。reset清除查询缓冲区。quit 或 exit退出 isql。
登录或发出 use database 命令后,将不再显示 5701(“数据库已更改”)服务器消息。
错误消息格式不同于早期版本的 isql。如果有根据这些消息的值执行例程的脚本,则需要对它们进行重写。
如果将 -X 参数包括在内,启用口令的连接的执行情况将视服务器的能力而定:
要以交互方式使用 isql,请在操作系统提示符处写入命令 isql(以及任意可选参数)。isql 程序接受 SQL 命令并将命令发送至 Adaptive Server。按标准输出为结果设置格式并进行显示。使用 quit 或 exit 退出 isql。
通过在某一行的开头键入缺省命令终结符 go(如果使用 -c 参数,则可键入其它命令终结符),终止某条命令。可以在命令终结符后加一个整数来指定命令运行的次数。例如,若要执行该命令 100 次,请输入:
select x = 1
go 100
结果在执行完毕后显示一次。
如果在命令行多次输入一个选项,则 isql 使用最后一个值。例如,如果输入下面的命令,-c 的第二个值 "send" 将替换第一个值 ".":
isql -c"." -csend这允许您覆盖您设置的所有别名。
若要调用当前查询缓冲区中的编辑器,请将其名称作为行中的第一个单词输入。通过用 EDITOR 环境变量指定,定义首选的可调用编辑器。如果未定义 EDITOR,则缺省值为 vi(在 UNIX 上)和 edit(在 Windows 上)。
例如,如果 EDITOR 环境变量设置为 "emacs",则必须从 isql 中调用它,并将 "emacs" 作为行中的第一个词。
若要清除已存在的查询缓冲区,可在单独一行中输入 reset。isql 将放弃任何待执行的输入。您还可在某行的任意位置按 Ctrl-c 来取消当前查询并返回至 isql 提示符。
按如下所示读入包含供 isql 执行的查询的操作系统文件:
isql -U alma -P password < input_file该文件必须包含命令终结符。结果会在终端上显示。在包含查询的操作系统文件中进行读取并将结果放入另一文件中,如下所示
isql -U alma -P password < input_file > output_fileisql 在小数点后仅显示 6 位 float 或 real 数据,其余部分四舍五入。
您可在 isql 向 Adaptive Server 提交的 Transact-SQL 语句中加入注释。用 " /* " 开始一个注释,并用 " */ " 结束该注释,如下例所示:
select au_lname, au_fname
/*retrieve authors’ last and first names*/
from authors, titles, titleauthor
where authors.au_id = titleauthor.au_id
and titles.title_id = titleauthor.title_id
/*this is a three-way join that links authors
**to the books they have written.*/
如果要注释掉 go 命令,则不应将其置于一行的开始处。例如,使用以下方式注释掉 go 命令:
/*
**go
*/
不要使用下面的方法:
/* go */isql 将日期格式顺序定义为月、日、年(mm dd yyyy hh:mmAM(或 PM)),不考虑区域设置环境。要更改此缺省顺序,请使用 convert 函数。
在 isql 会话中,缺省提示标签为缺省通配符 :? 或
注意在 isql 会话中,仅当 :?, 或
打开一个可在其中编辑查询的文本文件。编写并保存文件后,返回到 isql 。随即显示查询;单独在一行上键入 "go" 来执行该查询:
isql -Ujoe -Pabracadabra
1> select *
2> from authors
3> where city = "Oakland"
4> vi
reset 清除查询缓冲区。 quit 返回到操作系统:
isql -Ualma
Password:
1> select *
2> from authors
3> where city = "Oakland"
4> reset
1> quit
指定将从 Macintosh 中对使用 roman8 字符集的服务器运行 isql:
isql -a mac -J roman8在 pubs2 数据库的输出中使用字符“#”为存储 ID 7896 创建列分隔符:
isql -Usa -P -s#
1> use pubs2
2> go
1> select * from sales where stor_id = "7896"
#stor_id#ord_num #date #
#-------#--------------------#--------------------------#
#7896 #124152 # Aug 14 1986 12:00AM#
#7896 #234518 # Feb 14 1991 12:00AM#
(2 rows affected)
更改口令,不显示输入的口令。此示例使用“old”和“new”作为提示标签:
$ isql -Uguest -Pguest -Smyase --conceal
sp_password
:? old
,
:?:? new
old
new
Confirm new
Password correctly set.
(Return status 0)
激活当前用户的角色。此示例使用自定义通配符及“role”和“password”提示标签:
$ isql -UmyAccount --conceal '*'Password:
set role
* role
with passwd
** password
on
go
role
password
Confirm password