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

SQL Anywhere 11.0.1 (中文) » UltraLite - 数据库管理和参考 » UltraLite 数据库参考 » UltraLite 实用程序

 

UltraLite 的 Interactive SQL 实用程序 (dbisql)

执行 SQL 命令或运行命令文件。

语法
dbisql -c "connection-string" -ul [ options ] [ dbisql-command | command-file ]
选项 说明
@data

从指定的环境变量或配置文件中读取选项。如果存在具有相同名称的环境变量和配置文件,则使用环境变量。

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

-c "connection-string" 必需。连接到 DBF 或 connection-string 的 file_name 参数所标识的数据库。如果未指定用户 ID 和口令,则会假定缺省 UID 为 DBA 且 PWD 为 sql
-d delimiter

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

命令分隔符用于该 Interactive SQL 会话中的所有连接,无论存储在数据库中的设置是什么。

-d1 将用户显式执行的所有语句都回写到命令窗口 (STDOUT)。在调试 SQL 脚本或在 Interactive SQL 处理长 SQL 脚本时,这样可以提供有用的反馈。
-f filename

打开(但不运行)名为 filename 的文件。如果文件名包含空格,请将文件名用引号括起来。

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

如果未包含完整的文件路径,则假定一个与当前目录相关的路径。如果文件不存在,或它实际上是目录而非文件,则 Interactive SQL 会输出错误消息,然后关闭。

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

-nogui 在命令提示符模式下运行。如果指定 dbisql-commandcommand-file,则假定已指定 -nogui。
-onerror behavior

控制在从指定的命令文件中读取数据期间遇到错误时所采取的操作。定义以下支持的 behavior 值之一:

  • Stop   Interactive SQL 停止执行语句。

  • Prompt   Interactive SQL 提示用户查看是否要继续。

  • Continue   忽略错误,Interactive SQL 继续执行语句。

  • Exit   Interactive SQL 终止。

  • Notify_Continue   报告错误,并提示用户按 Enter 键或单击 [确定] 继续。

  • Notify_Stop    报告错误,并提示用户按 Enter 键或单击 [确定] 停止执行语句。

  • Notify_Exit   报告错误,并提示用户按 Enter 键或单击 [确定] 终止 Interactive SQL。

-q 将实用程序设置为在安静模式下运行。取消信息性标题、版本号和状态消息。但是,仍然会显示错误消息。
-ul

缺省情况下,连接到 UltraLite 数据库。

缺省情况下,Interactive SQL 会假定您连接的是 SQL Anywhere 数据库。如果指定 -ul 选项,缺省设置会改变为 UltraLite 连接。无论数据库设置的缺省值类型如何,您都可以连接到 SQL Anywhere 或 UltraLite 数据库。通过从 连接 窗口的下拉列表中选择数据库类型来执行此操作。

-version

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

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

执行 SQL 语句或指定的 command-file

如果未指定 SQL-statementcommand-file,则 Interactive SQL 将进入交互模式,在这种模式下,可以在命令窗口中键入命令。

注释

Interactive SQL 允许您执行 SQL 命令或运行命令文件。还提供关于以下内容的反馈:

当连接到 UltraLite 数据库时,SQL Anywhere 特有的菜单项将不会在界面中显示。例如,[工具] » [查寻过程名] 或 [工具] » [索引顾问]。

在 UltraLite 中,归类包括一个代码页加上一个排序顺序。因此,代码页的编号与显示为 UltraLite 归类名一部分的编号相对应。要查看支持的归类(及其相应代码页)的列表,在命令提示符下运行 ulcreate -l

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

READ
ENCODING 297
status.txt;

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

在命令行模式下,Interactive SQL 将设置程序退出代码以指示成功或失败。在 Windows 操作系统中,环境变量 ERRORLEVEL 被设置为程序退出代码。

另请参见
示例

以下命令针对 UltraLite 的 CustDB.udb 数据库运行命令文件 mycom.sql。因为未定义用户 ID 和口令,所以假定缺省用户 ID 为 DBA 且口令为 sql。如果命令文件中存在错误,则该过程将终止。

dbisql -ul -c DBF=CustDB.udb -onerror exit mycom.sql