Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 管理数据库 » 数据库管理实用程序

 

Interactive SQL 实用程序 (dbisql)

针对数据库执行 SQL 命令并运行命令文件。

语法
dbisql [ options ] [ dbisql-command | command-file ]
选项 说明
@data

读取来自指定的环境变量或配置文件的选项。请参见使用配置文件

如果要保护口令或配置文件中的其它信息,可以使用文件隐藏实用程序对配置文件的内容进行模糊处理。请参见文件隐藏实用程序 (dbfhide)

-c "keyword=value; ..."

指定连接参数。如果 Interactive SQL 不能连接,则将显示一个窗口,您可以在其中输入连接参数。请参见连接参数

-d delimiter

指定命令分隔符。分隔符两侧的引号是可选的,但是,当分隔符对于命令解释程序自身来说具有特殊含义时,引号则是必需的。

此选项会替换 command_delimiter 选项的设置。请参见command_delimiter 选项 [Interactive SQL]

-d1 将用户显式执行的所有语句都回写到命令窗口 (STDOUT)。在调试 SQL 脚本或在 Interactive SQL 处理长 SQL 脚本时,这样可以提供有用的反馈。(最后一个字符是数字 1,而不是小写的 L)。只有在将 Interactive SQL 作为命令行程序运行时,才可以使用此选项。
-datasource DSN-name 指定要连接的 ODBC 数据源。
-f filename

在 [SQL 语句] 窗格中打开(但不运行)名为 filename 的文件。

如果有 -f 选项,将忽略 -c 选项;即不会连接数据库。

文件名可用引号括起来;如果文件名包含空格,则必须 用引号括起来。如果文件不存在,或它实际上是目录而非文件,则 Interactive SQL 会输出错误消息,然后退出。如果文件名不包括完整的驱动器和路径说明,则假定它相对于当前目录。

只有在将 Interactive SQL 作为窗口式应用程序运行时,才支持此选项。

-host hostname 指定正运行数据库服务器的计算机的 hostname 或 IP 地址。可以使用名称 localhost 来代表当前计算机。
-nogui

在命令提示符模式下运行 Interactive SQL,不使用窗口式用户界面。这对于批处理操作是很有用的。如果指定 dbisql-commandcommand-file,则假定已指定 -nogui。

在此模式下,Interactive SQL 将设置程序退出代码以指示成功或失败。在 Windows 操作系统中,可使用环境变量 ERRORLEVEL 检查程序退出代码。请参见软件组件的退出代码

-onerror { continue | exit } 控制在从命令文件读取语句时如果遇到错误将采取的操作。此选项会替换 on_error 设置。在批处理操作中使用 Interactive SQL 时,它是很有用的。请参见on_error 选项 [Interactive SQL]
-port port-number 指定数据库服务器使用的端口号。SQL Anywhere 的缺省端口号是 2638。
-q

取消输出消息。只有在使用命令或命令文件启动 Interactive SQL 时,此选项才有意义。指定此选项不会取消错误消息,但会取消以下各项:

  • 警告和其它非致命错误消息

  • 结果集的输出

-ul

指定 UltraLite 数据库为缺省数据库。Interactive SQL 会根据您连接到的数据库类型来决定可供使用的选项。缺省情况下,Interactive SQL 会假定您连接的是 SQL Anywhere 数据库。如果指定 -ul 选项,缺省设置会更改为 UltraLite 数据库。不管已将哪种数据库设置为缺省数据库,您都可以通过在 [连接] 窗口的下拉列表中选择需要的数据库类型来连接到 SQL Anywhere 或 UltraLite 数据库。

有关从 Interactive SQL 连接到 UltraLite 数据库的详细信息,请参见UltraLite 的 Interactive SQL 实用程序 (dbisql)

-version

显示 Interactive SQL 的版本号。您也可以在 Interactive SQL 中查看版本号;在 [帮助] 菜单中,选择 [关于 Interactive SQL]。

-x

扫描命令,但不执行这些命令。对于检查长命令文件的语法错误,此选项很有用。

有关 SQL 语句和 Interactive SQL 命令的详细说明,请参见SQL 语言元素

注释

Interactive SQL 允许您浏览数据库,执行 SQL 命令,并运行命令文件。它还提供有关受影响的行数、每个命令所需的时间、查询的执行计划以及任何错误消息的反馈。

您可以连接到 SQL Anywhere 和 UltraLite 数据库。

Interactive SQL 可在 Windows、Solaris、Linux 和 Mac OS X 上使用。

如果指定 dbisql-command,则 Interactive SQL 会执行该命令。您也可以指定命令文件名。如果未指定 dbisql-commandcommand-file 参数,则 Interactive SQL 进入交互模式,在这种模式下,您可以在命令窗口中键入命令。

您可以通过下列方法来启动 Interactive SQL:

对于 Windows,有两个可执行文件。批处理脚本应调用 dbisqldbisql.com 而不是 dbisql.exedbisql.com 可执行文件作为控制台应用程序进行链接。dbisql.exe 可执行文件作为窗口式应用程序进行链接,且不阻止用于启动该应用程序的命令 shell。如果 dbisql.exe 从批处理文件运行,您将不会看到有任何输出发送到标准输出或标准错误文件。

可使用 INPUT、OUTPUT 或 READ 语句的 ENCODING 子句,指定在读取或写入文件时要使用的代码页。例如,在英文 Windows XP 计算机上,窗口式程序使用 1252 (ANSI) 代码页。如果要让 Interactive SQL 读取用 297 (IBM France) 代码页创建的名为 status.txt 的文件,可使用以下语句:

READ
ENCODING 297
status.txt;

还可使用 default_isql_encoding 选项来设置 Interactive SQL 的缺省代码页。请参见:

退出代码是零(成功)或非零(失败)。只有在批处理模式中运行 Interactive SQL(即执行包含 SQL 语句或脚本文件名称的命令行)时才会设置非零退出代码。请参见软件组件的退出代码

通过 Interactive SQL 执行 reload.sql 文件时,必须将加密密钥指定为一个参数。如果未在 READ 语句中提供密钥,Interactive SQL 会提示您输入密钥。

另请参见
示例

以下命令使用用户 ID DBA 和口令 sql,针对当前缺省服务器运行命令文件 mycom.sql。如果命令文件中存在错误,则该过程将关闭。

dbisql -c "UID=DBA;PWD=sql" -onerror exit mycom.sql

以下命令会将一个用户添加到当前的缺省数据库中:

dbisql -c "UID=DBA;PWD=sql" CREATE USER joe IDENTIFIED passwd