db2cli - Db2 交互式 CLI 命令

启动交互式调用级接口 (CLI) 环境,以便在 CLI 中进行设计和原型化。

权限

db2cli 命令位于 IBM® 数据服务器产品安装目录的 bin 子目录中。在 UNIX 和 Linux 操作系统上,db2cli 命令位于 home_dir/sqllib/bin 目录中,其中 home_dir 是实例所有者的主目录。在 Windows 操作系统上,该命令位于 DB2PATH\bin 目录中,其中 DB2PATHDb2 副本的安装位置。

需要的连接

命令语法

阅读语法图跳过直观语法图db2cli validateValidate options-helpbindfilenameBind options-helpregisterdsnRegister DSN optionscsc-infoExecsql optionsinstallInstall optionswritecfgWrite configuration file optionsrefreshldap-global-help
Validate options
阅读语法图跳过直观语法图-dsndsn_name-databasedatabase:server:port-connectConnect options-all-foutput_file
Connect options
阅读语法图跳过直观语法图-displaylic-odbcdsn-useserverlic-userusername-passwdpassword-userusername--keystoredbpasswordkeystoredbpasswd-userusername
Bind options
阅读语法图跳过直观语法图-dsndsn_name-databasedatabase:server:port-userusername-passwdpassword-options"various_bind_options"
Register DSN options
阅读语法图跳过直观语法图-add-dsndsn_name-alldsn-includeldap-remove-copynamecopy_name-allcopies-force-dsndsn_name-alldsn-list-copynamecopy_name-allcopies-user-system-help
Execsql options
阅读语法图跳过直观语法图 execsql -execute-prepareonly Server options-connstringstring -inputsqlsqlfile-outfileoutput_file-statementdelimiterdelimiter-commentstartcomment_indicator-help
Server options
阅读语法图跳过直观语法图-dsndsn_nameAuthentication options
Authentication options
阅读语法图跳过直观语法图-userusername-passwdpasswd
Install options(仅在 Windows 上可用)
阅读语法图跳过直观语法图-setup-cleanup-appdatapathpath_name-cleanup-force-help
Write configuration file options
阅读语法图跳过直观语法图add-dsndsn_name-description--dsn_descriptiondb-optionsdb-optionsadd-options-parameter-parameters";parameter_name=parameter_value"-sessionglobalvariables";globvar_name=globvar_value"-specialregisters";register_name=register_value"remove-dsndsn_namedb-optionsremove-options-parameter-parameters";parameter_name"-sessionglobalvariables";globvar_name"-force-specialregisters";register_name"-force-help
db-options
阅读语法图跳过直观语法图 -database db_name -host host_name -port p_number
add-options
阅读语法图跳过直观语法图-parameter-parameters";parameter_name=parameter_value"-sessionglobalvariables";globvar_name=globvar_value"-specialregisters";register_name=register_value"
remove-options
阅读语法图跳过直观语法图-parameter-parameters";parameter_name"-sessionglobalvariables";globvar_name"-force-specialregisters";register_name"-force

命令参数

validate

验证并测试 CLI 环境配置。此选项显示在 db2cli.inidb2dsdriver.cfg 文件中找到的一列关键字。如果任何关键字不适用于指定的数据源或数据库名称,那么它们会列示为 UNKNOWNIBM Data Server ClientIBM Data Server ClientIBM Data Server Runtime Client),db2cli validate 命令列示 Windows 操作系统上已安装的 Db2 客户机软件包。

IBM Data Server Client 发出 db2cli validate 命令时,仅列示 Windows 操作系统上安装的 IBM Data Server Client。要列示 Windows 操作系统上安装的 IBM Data Server Driver for ODBC and CLI 软件包和 IBM 数据服务器客户机软件包,必须从 IBM Data Server Driver for ODBC and CLI 安装中发出 db2cli validate 命令。该列表会指出当前副本名称为 [C],缺省副本名称为 [D]

-dsn dsn_name
指定要验证的数据源名称 (DSN)。如果 dsn_name 包含空格,请将其括在双引号内。
-database database:server:port
指定要验证的数据库名称、服务器名称和端口号。必须使用冒号来分隔数据库名称、服务器名称和端口号。服务器名称必须包含标准域名 (FQDN),例如,TESTDB:dbserver.example.com:19677
-all
验证 db2dsdriver.cfg 文件中存在的每个数据库和 DSN 条目。
-connect
db2cli validate 命令会进行连接,并将有关所尝试连接的信息写入命令输出。
限制: 如果是与版本低于客户机版本的网关建立连接,那么相应客户机/服务器组合所支持的新功能可能不可用。
-f OUTPUT_FILE
指定可选输出文件,用于保存 db2cli 命令的结果。
-help
显示与 validate 参数的用法相关的帮助信息。
Connect
指定可以由 db2cli validate 命令测试连接的 DSN 或数据库。有关连接尝试的信息以及许可证信息会列示在命令输出中。
-displaylic
显示是否存在有效许可证以及该许可证所在的位置。许可证可以存在于客户机和/或服务器上。对于 Db2 for IBM iDb2 for z/OS® 服务器上的许可证,命令输出会包含相应的信息,指出是否将用户定义的函数 (UDF) 或存储过程 (SP) 用于许可证发放,并且会指出许可证版本。
-odbcdsn
允许用户使用 ODBC 驱动程序管理器来验证数据库连接。
-useserverlic
通过调用用于许可证发放的用户定义的函数 (UDF) 或存储过程 (SP),测试位于 Db2 for IBM iDb2 for z/OS 服务器上的许可证。-useserverlic 选项会绕过客户机端许可证检查。显示许可证版本,以及该用户定义函数 (UDF) 或存储过程 (SP) 是否用于许可证发放。
切记: 只有在连接到 Db2 for IBM iDb2 for z/OS 服务器之后,才能使用 -useserverlic 选项。
-user username
指定用于连接的用户名。
-passwd password
指定用于连接的密码。
-keystoredbpassword keystoredbpasswd
Authentication 参数设置为 CERTIFICATE 时,指定用于 SSL 连接的密码。
bind

针对目标数据库绑定指定的 filenamedb2cli bind 命令会先使用 db2cli bind 命令参数中提供的信息连接到目标数据库,再执行绑定操作。绑定文件的扩展名为 .bnd

filename
filename 可以是绑定文件的名称,也可以包含多个绑定文件名的列表文件的名称。如果指定列表文件,那么必须使用 @ 字符作为列表文件名的前缀。可以指定标准绑定文件名,但必须括在双引号内。

如果指定不含任何路径的绑定文件名,那么将先在当前目录中搜索该文件。如果可以找到该文件,那么会捡取该文件,并创建程序包。如果在当前目录中找不到该文件,那么会从实例或安装路径中自动捡取该文件。

-dsn dsn_name
指定要绑定的数据源名称 (DSN)。使用此绑定选项时,除连接至目标数据库所需的有效用户标识和密码之外,所有信息都必须存在于:
  • db2cli.ini 文件中的数据源名称小节。
  • db2dsdriver.cfg 文件中的数据库小节或 DSN 小节。
  • 本地目录条目。
-database database:server:port
指定要绑定的数据库名称、服务器名称和端口号。必须使用冒号来分隔数据库名称、服务器名称和端口号。服务器名称必须包含标准域名 (FQDN),例如,TESTDB:dbserver.example.com:19677
-user username
指定用于连接的用户名。
-passwd password
指定用于连接的密码。
-options "various_bind_options"
指定绑定选项及相应的值。可用的绑定选项如下所示:
  • BLOCKING
  • COLLECTION
  • ENCODING
  • GENERIC
  • GRANT
  • GRANT_ROLE
  • ISOLATION
  • KEEPDYNAMIC
  • REOPT
-help
显示与 bind 参数的用法相关的帮助信息。
registerdsn

指定 db2cli 注册 DSN 方式。使用此命令参数可在 Windows 操作系统中注册 DSN。

-add dsn_name|-alldsn
将系统或用户 ODBC 数据源添加到 Microsoft ODBC 数据源管理器。仅当 db2dsdriver.cfg 文件或 db2cli.ini 文件中存在该 DSN 的 description 值时,才会将 description 添加到注册表中。
dsn_name
指示要注册的 DSN。dsn_name 的值必须是 db2cli.ini 文件中定义的 DSN 或者 db2dsdriver.cfg 文件中定义的 DSN 别名,且不能是 DBALIAS 名称。-add dsn-name 参数针对本地数据库目录中的已编目数据库添加数据源。dsn-name 可以指示 db2cli.ini 中定义的数据源或者 db2dsdriver.cfg 文件中定义的 DSN 别名,以及 IBM Data Server 客户机的本地数据库目录中的数据库别名。如果 dsn_name 包含空格,请将其括在双引号内。
-dsn
允许用户指定需要添加到 Microsoft ODBC 数据源管理器的 DSN 名称。db2cli registerdsn -add -dsn 命令在 Windows 操作系统上可用。
-alldsn
注册 db2cli.ini 文件中定义的所有数据源、db2dsdriver.cfg 文件中定义的 DSN 别名以及本地数据库目录。此参数必须与 -add 参数配合使用。
-includeldap
注册在 LDAP 服务器、db2cli.ini 文件、db2dsdriver.cfg 文件和本地数据库目录中指定的所有数据源。请通过在 IBM 数据服务器驱动程序配置文件中配置 LDAP 小节,或在 Windows 环境中配置 LDAP 连接,确保您可以成功连接到 LDAP 服务器。
-user
将数据源注册为用户 ODBC 数据源。如果未指定任何参数,那么会将数据源注册为用户 ODBC 数据源。
-system
将数据源注册为系统 ODBC 数据源。
-remove dsn_name
从 Microsoft ODBC 数据源管理器中移除系统或用户 ODBC 数据源。如果 dsn_name 包含空格,请将其括在双引号内。
-alldsn
从 Microsoft ODBC 数据源管理器中移除所指定 Db2 副本的所有用户或系统 ODBC 数据源条目。db2cli register -remove -alldsn 命令在 Windows 操作系统上可用。
-copyname copy_name
从 Microsoft ODBC 数据源管理器中移除所指定 Db2 副本的用户或系统 ODBC 数据源条目。未指定副本名称时,将会使用当前副本名称。当前副本名称是从中运行 db2cli 实用程序的客户机的副本名称。如果同时指定 -copyname 选项和 -alldsn 选项,那么会从指定的 Db2 副本中移除 Microsoft ODBC 数据源管理器中的所有数据源条目。db2cli register -remove -copyname 命令在 Windows 操作系统上可用。
-allcopies
从 Microsoft ODBC 数据源管理器中移除所有 Db2 副本的所有用户或系统 ODBC 数据源条目。除非您还指定 -force 选项,否则系统会提示您确认移除所有 ODBC 数据源条目。db2cli register -remove -allcopies 命令在 Windows 操作系统上可用。
-force
移除所有的用户或系统 ODBC 数据源条目,不提示您确认。-force 选项只能与 -allcopies 选项配合使用。db2cli register -remove -allcopies -force 命令在 Windows 操作系统上可用。
-dsn
指定要从 Microsoft ODBC 数据源管理器中移除的 DSN 名称。db2cli register -remove -dsn 命令在 Windows 操作系统上可用。缺省选项为 -user,即移除用户 DSN。必须指定 -system 选项才能移除系统 DSN。
-list
列示 在 Microsoft ODBC 数据源管理器中注册的所有系统或用户 IBM Data Server ODBC 数据源。
-copyname copy_name
列示 Microsoft ODBC 数据源管理器中所指定 Db2 副本的用户或系统 ODBC 数据源条目。未指定副本名称时,将会使用当前副本名称。当前副本名称是从中运行 db2cli 实用程序的客户机的副本名称。db2cli register -list -copyname 命令在 Windows 操作系统上可用。
-allcopies
列示 Microsoft ODBC 数据源管理器中所有 Db2 副本的所有用户或系统 ODBC 数据源条目。db2cli register -list -allcopies 命令在 Windows 操作系统上可用。
-help
显示与 registerdsn 参数的用法相关的帮助信息。
注: 要在 64 位 Windows 机器上添加、移除或列示 32 位 ODBC 数据源条目,请使用 db2cli32 命令。
csc -info
显示连接管理程序客户机 (CSC) 信息。CSC 是可动态装入的库,供 CLI 用于端到端监视。
-execsql

执行或准备输入文件中指定的 SQL 语句。还可以将输出保存到文件。

-execute
指定准备并运行 SQL 脚本文件中的 SQL 语句。如果未指定任何参数,那么这是缺省值。结果将显示在控制台中。要将输出保存到文件,请指定 -output 选项,搭配文件的绝对或相对路径。SQL 脚本文件中的 SQL 语句不能包含参数标记。
-prepareonly
指定准备 -inputSql 选项所指定文件中的 SQL 语句,但不运行。使用此选项可检查 SQL 语句的语法,但不运行这些语句。
-commentstart comment_indicator
指定出现在行首以指示注释行的字符组合。comment_indicator 的缺省值为双破折号 (--)。如果注释跨多行,请以 comment_indicator 字符组合作为行首。注释行的最大长度为 128 个字符。在输入 SQL 文件中,注释字符后面的文本可以包含语句游标属性。游标属性会应用于紧跟在该注释之后的 SQL 语句。
-connstring string
指定目标数据库的数据库名称、服务器和端口号。必须以 SQLDriverConnect API 函数中 InConnectionString 自变量所定义的格式指定信息。例如:
DATABASE=SAMPLE;HOSTNAME=test.ibm.com;PORT=50000;UID=db2user;PWD=db2pwd
.
-dsn dsn_name
指定在 db2cli.ini 文件中定义的数据源名称或者在 db2dsdriver.cfg 文件中定义的 DSN 别名。如果 dsn_name 包含空格,请将其括在双引号内。
-help
显示用法摘要信息。
-inputsql sqlfile
指定包含 SQL 语句的输入文件。sqlfile 的值是文件的绝对或相对路径。该文件中的 SQL 语句以定界符分隔。仅使用可以准备的语句。不允许使用 DESCRIBE TABLEBIND 之类的 Db2 命令。

输入 SQL 文件中只能包含 SQL 语句和注释。该文件不能包含特定于 CLI 的属性或关键字。不支持批处理 SQL 语句。

-outfile outputfile
指定用于存储输出结果的文件的绝对或相对路径。如果未指定此选项,那么结果会显示在控制台中。
-passwd password
指定用于向数据库进行认证的密码。
-statementdelimiter delimiter
指定输入 SQL 文件中用于分隔语句的字符组合。定界符的缺省值为回车符。
-user username
指定用于向数据库进行认证的用户。
install

在 Windows 注册表中注册或注销 IBM Data Server Driver for ODBC and CLI。

-setup
在 Windows 注册表中的 ODBC 下注册 IBM Data Server Driver for ODBC and CLI。此参数还会在缺省应用程序数据路径中创建配置文件夹(cfg、cfgcache 和 db2dump)以及样本配置文件。
-appdatapath <path name>
在 path name 中创建配置文件夹(cfg、cfgcache 和 db2dump)以及样本配置文件。
-cleanup
从 Windows 注册表的 ODBC 下注销当前 IBM Data Server Driver for ODBC and CLI。然后,清除操作将会移除在当前安装的应用程序数据路径中创建的文件夹、配置样本文件和许可证管理文件。除非指定了 –force 选项,否则不会移除用户创建的任何文件或文件夹。
-force
–cleanup 选项一起指定时,将从应用程序数据路径中移除特定于安装的整个文件夹。此文件夹仅属于此安装。将会移除此文件夹中任何由用户创建的文件或文件夹,不会发出任何提示或警告。
-help
显示与 install 参数的用法相关的帮助信息。
writecfg add|remove
更新 db2dsdriver.cfg 配置文件。
add -dsn | -database | -parameter[s]
将有关 DSN、数据库或参数的信息添加至 db2dsdriver.cfg 配置文件。
-dsn dsn_name [-description dsn_description] -database db_name -host host_name -port port_number
指定 DSN 别名以及可选的描述值。您可以在配置文件中添加或更新参数元素、会话全局变量参数元素或者 DSN 别名的整个 -dsn 子节。如果 dsn_name 包含空格,请将其括在双引号内。对于 -description dsn_description-dsn dsn_name 选项为必需。

如果配置文件中不存在以 dsn_name 作为 DSN 别名的 -dsn 子节,那么将会在 dsncollection 节中添加新的 -dsn 子节。

如果配置文件中存在以 dsn_name 作为 DSN 别名的 -dsn 子节,那么会将新的参数或会话全局变量信息追加至现有的 -dsn 子节中。

如果 db2dsdriver.cfg 配置文件中存在 db_name 信息相同的 -database 子节,那么会将指定的参数元素追加至该 -database 子节中。否则,指定的参数元素或会话全局变量参数元素将添加到新的 -database 子节中。

-parameter[s] par1=par1_val[;...;parN=parN_val]
指定参数信息,以在 db2dsdriver.cfg 配置文件的指定 -dsn 子节中添加或更新参数元素。

如果您指定在 db2dsdriver.cfg 配置文件的 -dsn 子节中找不到的新参数元素,那么会将新的参数元素添加到 -dsn 子节中。

如果配置文件中已存在指定的参数元素,那么 <dsn> 子节中的现有参数值将以您使用 -parameter[s] 选项指定的值进行更新。

特殊字符(例如,值中的路径分隔符)必须以转义字符“\”开头。

db2cli writecfg 命令不会验证语法,也不会验证所指定参数的值。

-sessionglobalvariables globvar_name=globvar_value[;...;globvar_nameN=globvarN_value]
指定会话全局变量信息,以在 db2dsdriver.cfg 配置文件中添加或更新所指定 DSN 的参数元素。

如果您指定在 db2dsdriver.cfg 配置文件的 -dsn 子节中找不到的新会话全局变量参数,那么会将新的会话全局变量参数添加到 -dsn 子节中。

如果配置文件中已存在指定的会话全局变量参数元素,那么 -dsn 子节中的会话全局变量值将以您使用 -sessionglobalvariables 选项指定的值进行更新。

特殊字符(例如,值中的路径分隔符)必须以转义字符“\”开头。

db2cli writecfg 命令不会验证语法,也不会验证所指定会话全局变量参数的值。

-specialregisters register_name=register_value[;...;register_nameN=registerN_value]
指定专用寄存器信息,用于在 db2dsdriver.cfg 配置文件中添加或更新所指定 DSN 的参数元素。

如果指定在 db2dsdriver.cfg 配置文件的 <dsn> 子节中不存在的专用寄存器参数,那么会将新的专用寄存器参数元素添加到该子节。如果配置文件中已存在指定的专用寄存器参数元素,那么 -dsn 子节中的专用寄存器值将以您为 -specialregisters 参数指定的值进行更新。

专用寄存器值 (registerN_value) 中的任何特殊字符都必须以转义字符“\”开头。

db2cli writecfg 命令不会验证语法,也不会验证所指定专用寄存器参数的值。

-database db_name -host host_name -port port_number
指定 <database> 子节的连接信息。此信息包括数据库名称、数据库所在的主机名以及数据库服务器的端口号。

如果 db2dsdriver.cfg 配置文件中存在 db_name 信息相同的 <database> 子节,那么会将指定的参数元素追加至该 <database> 子节中。否则,指定的参数元素或会话全局变量参数元素将添加到新的 <database> 子节中。

-parameter[s] parameter_name1=par1_val[;...;parN=parN_val]
指定参数信息,以在 db2dsdriver.cfg 配置文件中添加或更新所指定数据库名称的参数元素。

如果您指定在 db2dsdriver.cfg 配置文件的 <database> 子节中找不到的新参数元素,那么会将新的参数元素添加到 <database> 子节中。

如果配置文件中已存在指定的参数元素,那么 <database> 子节中的现有参数值将以您使用 -parameter[s] 选项指定的值进行更新。

特殊字符(例如,值中的路径分隔符)必须以转义字符“\”开头。

db2cli writecfg 命令不会验证语法,也不会验证所指定参数的值。

-sessionglobalvariables globvar_string
其中 globvar_string 的格式如下:
globvar_name=globvar_value[;...;globvar_nameN=globvarN_value]

指定会话全局变量信息,以在 db2dsdriver.cfg 配置文件中添加或更新所指定数据库名称的参数元素。

如果您指定在 db2dsdriver.cfg 配置文件的 <database> 子节中找不到的新会话全局变量参数,那么会将新的会话全局变量参数添加到 <database> 子节中。

如果配置文件中已存在指定的会话全局变量参数元素,那么 <database> 子节中的会话全局变量值将以您使用 -sessionglobalvariables 选项指定的值进行更新。

特殊字符(例如,值中的路径分隔符)必须以转义字符“\”开头。

db2cli writecfg 命令不会验证语法,也不会验证所指定会话全局变量参数的值。

-specialregisters register_name=register_value[;...;register_nameN=registerN_value]
指定专用寄存器信息,用于在 db2dsdriver.cfg 配置文件中添加或更新所指定数据库名称的参数元素。

如果指定在 db2dsdriver.cfg 配置文件的 <database> 子节中不存在的专用寄存器参数,那么会将专用寄存器参数元素添加到该子节。如果指定的专用寄存器参数元素已存在于配置文件中,那么 <database> 子节中的专用寄存器值将更新为您对 -specialregisters 参数指定的值。

专用寄存器值 (registerN_value) 中的任何特殊字符都必须以转义字符“\”开头。

db2cli writecfg 命令不会验证语法,也不会验证所指定专用寄存器参数的值。

-parameter[s] parameter_name1=par1_val[;...;parN=parN_val]
指定参数信息,以在 db2dsdriver.cfg 配置文件中添加或更新所有数据库和 DSN 的参数元素。

要向全局 <parameters> 节添加参数,请指定参数信息,但不要指示数据库或数据源。

如果您指定在 db2dsdriver.cfg 配置文件的 <parameters> 子节中找不到的新参数元素,那么会将新的参数元素添加到 <parameters> 子节中。

如果配置文件中已存在指定的参数元素,那么 <parameters> 子节中的现有参数值将以您使用 -parameter[s] 选项指定的值进行更新。

特殊字符(例如,值中的路径分隔符)必须以转义字符“\”开头。

db2cli writecfg 命令不会验证语法,也不会验证所指定参数的值。

-sessionglobalvariables globvar_string
其中 globvar_string 的格式如下:
globvar_name=globvar_value[;...;globvar_nameN=globvarN_value]

指定参数信息,以在 db2dsdriver.cfg 配置文件中添加或更新所有数据库或 DSN 的参数元素。

如果您指定在 db2dsdriver.cfg 配置文件的 <parameters> 子节中找不到的新会话全局变量参数,那么会将新的会话全局变量参数添加到 <parameters> 子节中。

如果配置文件中已存在指定的会话全局变量参数元素,那么 <parameters> 子节中的会话全局变量值将以您使用 -sessionglobalvariables 选项指定的值进行更新。

特殊字符(例如,值中的路径分隔符)必须以转义字符“\”开头。

db2cli writecfg 命令不会验证语法,也不会验证所指定参数的值。

-specialregisters register_string
其中 register_string 的格式如下:
register_name=register_value[;...;register_nameN=registerN_value]

指定专用寄存器信息,用于在 db2dsdriver.cfg 配置文件中添加或更新所有数据库的参数元素。

如果指定在 db2dsdriver.cfg 配置文件的 <parameters> 子节中不存在的专用寄存器参数,那么会将专用寄存器参数元素添加到 <parameters> 子节。如果指定的专用寄存器参数元素已存在于配置文件中,那么 <parameters> 子节中的专用寄存器值将更新为您对 -specialregisters 参数指定的值。

专用寄存器值 (registerN_value) 中的任何特殊字符都必须以转义字符“\”开头。

db2cli writecfg 命令不会验证语法,也不会验证所指定专用寄存器参数的值。

remove -dsn| -database | -parameter[s]
db2dsdriver.cfg 配置文件中移除有关 DSN、数据库或参数的信息。
-dsn dsn_name
指定要在配置文件中移除其参数元素、会话全局变量参数元素或整个 <dsn> 子节的 DSN。如果 dsn_name 包含空格,请将其括在双引号内。

要移除参数元素或会话全局变量参数元素信息,请指定相应的 DSN 以及参数或会话全局变量信息。

要移除整个数据源子节,请仅指定 DSN,不要指定任何参数或会话全局变量信息。

-parameter[s] parameter_name1[;...;parameter_nameN]
指定要从 db2dsdriver.cfg 配置文件中的指定 DSN 中移除的参数信息。

如果配置文件的指定 <dsn> 子节中不存在所指示的参数,那么不会执行任何操作。

-sessionglobalvariables globvar_name[;...;globvar_nameN]
指定要从 db2dsdriver.cfg 配置文件中的指定 DSN 中移除的会话全局变量信息。

如果配置文件的指定 <dsn> 子节中不存在所指示的会话全局变量,那么不会执行任何操作。

-sessionglobalvariables -force
db2dsdriver.cfg 配置文件中的指定 <dsn> 子节中移除所有会话全局变量信息。如果 <dsn> 子节中不存在会话全局变量,那么不会执行任何操作。
-specialregisters register_name[;...;register_nameN]
指定要从 db2dsdriver.cfg 配置文件中的指定 <dsn> 子节中移除的专用寄存器信息。如果配置文件的指定 <dsn> 子节中不存在所指示的专用寄存器,那么不会执行任何操作。
-specialregisters -force
db2dsdriver.cfg 配置文件中的指定 <dsn> 子节中移除所有专用寄存器信息。如果 <dsn> 子节中不存在专用寄存器,那么不会执行任何操作。
-database db_name -host host_name -port port_number
指定要在配置文件中移除其参数元素、会话全局变量参数元素或整个 <database> 子节的数据库名称。

要移除参数元素或会话全局变量参数元素信息,请指定相应的数据库名称以及参数或会话全局变量信息。

要移除整个数据库子节,请仅指定数据库名称,不要指定任何参数或会话全局变量信息。

-parameter[s] parameter_name1[;...;parameter_nameN]
指定要从 db2dsdriver.cfg 配置文件中的指定数据库名称中移除的参数信息。

如果配置文件的 <database> 子节中不存在所指示的参数,那么不会执行任何操作。

-sessionglobalvariables globvar_name[;...;globvar_nameN]
指定要从 db2dsdriver.cfg 配置文件中的指定数据库名称中移除的会话全局变量信息。

如果配置文件的指定 <database> 子节中不存在所指示的会话全局变量,那么不会执行任何操作。

-sessionglobalvariables -force
db2dsdriver.cfg 配置文件中的指定数据库名称中移除所有会话全局变量信息。如果 <database> 子节中不存在会话全局变量,那么不会执行任何操作。
-specialregisters register_name[;...;register_nameN]
指定要从 db2dsdriver.cfg 配置文件中的指定数据库名称中移除的专用寄存器信息。如果配置文件的指定 <database> 子节中不存在所指示的专用寄存器,那么不会执行任何操作。
-specialregisters -force
db2dsdriver.cfg 配置文件中的指定数据库名称中移除所有专用寄存器信息。如果 <database> 子节中不存在专用寄存器,那么不会执行任何操作。
-parameter[s] parameter_name1[;...;parameter_nameN]
指定要从 db2dsdriver.cfg 配置文件的 <parameters> 节中移除的参数信息。

如果配置文件的 <parameters> 节中不存在所指示的参数,那么不会执行任何操作。

-sessionglobalvariables globvar_name[;...;globvar_nameN]
指定要从 db2dsdriver.cfg 配置文件的 <parameters> 节中移除的会话全局变量信息。

如果配置文件的指定 <parameters> 节中不存在所指示的会话全局变量,那么不会执行任何操作。

-sessionglobalvariables -force
db2dsdriver.cfg 配置文件中的 <parameters> 节中移除所有会话全局变量信息。如果 <parameters> 子节中不存在会话全局变量,那么不会执行任何操作。
-specialregisters register_name=register_value[;...;register_nameN=registerN_value]
指定要从 db2dsdriver.cfg 配置文件中的 <parameters> 节中移除的专用寄存器信息。如果配置文件的 <parameters> 子节中不存在所指示的专用寄存器,那么不会执行任何操作。
-specialregisters -force
db2dsdriver.cfg 配置文件中的 <parameters> 节中移除所有专用寄存器信息。如果 <parameters> 子节中不存在专用寄存器,那么不会执行任何操作。
-help
显示与 writecfg 参数的用法相关的帮助信息。
refreshldap
以轻量级目录访问协议 (LDAP) 服务器上指定的配置信息,在 IBM 数据服务器驱动程序配置文件 (db2dsdriver.cfg) 中更新及追加所有配置信息。db2cli refreshldap 命令会检索对用于连接至 LDAP 服务器的当前用户标识指定的配置信息。IBM 数据服务器驱动程序配置文件中使用 db2cli refreshldap 命令创建的所有 DSN 条目都包含 LDAP=1 属性。

对 LDAP 服务器中为数据库定义的认证类型将追加或更新到 IBM 数据服务器驱动程序配置文件中该 DSN 别名的 <dsn> 节。

对 LDAP 服务器中为数据库定义的 Protocol 参数,只有在其值不是 TCPIP 时,才会追加或更新到该 DSN 别名的 <dsn> 节。

下表列示 IBM 数据服务器驱动程序配置文件中支持的 DCS 参数和等效关键字。只有列示的 DCS 参数才能通过 refreshldap 选项进行追加或更新。
表 1. DCS 参数和等效的 IBM 数据服务器驱动程序配置关键字
DCS 参数 等效关键字
map-file SQLCODEMAP
INTERRUPT_ENABLED InterruptProcessingMode
SYSPLEX ConnectionLevelLoadBalancing
BIDI BiDiCCSID
所有受支持的 DCS 参数(SYSPLEX 参数除外)都会追加或更新到 <dsn> 节。存在于 LDAP 服务器中的 SYSPLEX 参数将追加或更新到相应的 <database> 节。使用 refreshldap 选项更新 IBM 数据服务器驱动程序配置文件时,可以通过不配置 db2cli.ini 文件来避免意外行为。db2cli.ini 文件配置优先于 IBM 数据服务器驱动程序配置文件。

db2cli refreshldap 命令会创建 IBM 数据服务器驱动程序配置文件(如果尚不存在)。

db2cli refreshldap 命令使用与 LDAP 服务器中指定的 CLI 关键字等效的关键字来更新 IBM 数据服务器驱动程序配置文件。在 LDAP 服务器上指定的任何没有等效 IBM 数据服务器驱动程序配置关键字的 CLI 关键字都会产生警告消息。不会追加或更新 LDAP 服务器上通过 GWNODE 选项指定的任何网关设置,而是产生警告消息。不会追加或更新 LDAP 服务器上的备用服务器设置,而是产生警告消息。

如果 LDAP 服务器上存在与 IBM 数据服务器驱动程序配置文件中并非根据 LDAP 服务器条目创建的现有 DSN 条目(不含 LDAP=1 属性)匹配的 DSN 条目,那么会返回警告,并且不会更新该 DSN 条目。

如果在 IBM 数据服务器驱动程序配置文件中存在用于同一数据库但别名不同的多个 DSN 条目,那么删除 LDAP 服务器上的 DSN 条目时,将仅移除根据 LDAP 服务器条目创建的 DSN 条目(包含 LDAP=1 属性)。

db2cli refreshldap 命令只能通过 IBM Data Server Driver PackageIBM Data Server Driver for ODBC and CLI 产品发出。

db2cli refreshldap 命令与可以从 IBM Data Server ClientIBM Data Server Runtime Client 或 IBM 数据库服务器产品发出的 REFRESH LDAP IMMEDIATE ALL 命令类似。
-global
以 LDAP 服务器上针对所有用户标识指定的全局配置信息,在 IBM 数据服务器驱动程序配置文件中更新和追加所有配置信息。
-help
显示 db2cli 命令帮助信息。

用法说明

交互式 CLI 接口由一组命令组成,可用于设计、原型化和测试 CLI 函数调用。这个测试工具是为想要使用此工具的程序员方便而提供,IBM 不能保证它的性能。此接口并非供用户使用,因此没有详尽的错误检查功能。

支持三种类型的命令:
CLI 命令
这些命令与 CLI 所支持的每个函数调用相对应,而且名称相同。
支持命令
这些命令没有等效的 CLI 函数。
其他方式
您可以使用 db2cli 命令的其他方式来验证和测试 CLI 环境配置。

可以交互方式发出命令,也可以从文件中发出命令。类似地,可以在终端上显示命令输出或将其写入文件。IBM Data Server Driver for ODBC and CLI 有一项实用功能,即,捕获在会话期间输入的所有命令并将它们写入文件,从而创建可供稍后重新运行的命令脚本

对于 Windows 64 位操作系统上的 IBM Data Server 客户机软件包,除了支持 64 位版本的 db2cli 命令之外,还支持 32 位版本的 db2cli (db2cli32.exe)。

SQL 语句通过 SQLExecDirect() 函数执行。执行 SQL 语句时,db2cli execsql 命令会使用 db2cli.inidb2dsdriver.cfg 文件中指定的数据库设置。

db2cli 命令所返回的错误消息使用与 SQLGetDiagRec() 函数相同的格式进行格式化。

命令行 ODBC 注册:要为 Windows 配置和注册 DSN:
  1. 对服务器节点进行编目。有关更多信息,请参阅“从客户机使用 CLP 对 TCP/IP 节点进行编目”。
  2. 对所要连接的数据库进行编目。有关更多信息,请参阅“从客户机使用 CLP 对数据库进行编目”。
  3. (可选)对数据库连接服务 (DCS) 目录进行编目。有关更多信息,请参阅“对 DCS 数据库命令进行编目”。
  4. 使用 db2cli 交互工具来注册 DSN。
    • 对于 32 位 ODBC DSN,请使用 db2cli32 命令。
    • 对于 64 位 ODBC DSN,请使用 db2cli 命令。
对于 64 位安装,可以同时使用 db2clidb2cli32 版本来注册 DSN。db2cli 命令会注册 64 位的 DSN,而 db2cli32 命令会注册 32 位的 DSN。

对于 32 位安装,缺省情况下,db2cli 命令仅注册 32 位 DSN。

要注册的 DSN 必须位于 db2cli.inidb2dsdriver.cfg 文件中。

示例

db2cli validate
在以下示例中,实用程序将会读取 db2cli.ini 文件的 [COMMON] 节、db2cli.ini 文件中 DSN 名称 sample 的 [DSN] 节,以及 db2dsdriver.cfg 文件中 DSN 名称 sample 的 <dsn> 元素。有效和无效的关键字均会显示;无效的关键字列示为 UNKNOWN。
db2cli validate –dsn sample
在下一个示例中,实用程序将会读取 db2cli.ini 文件的 [COMMON] 节,以及 db2dsdriver.cfg 文件中数据库 dbname1 服务器 server1.net1.com 端口 50001 的 <database> 节。有效和无效的关键字均会显示;无效的关键字列示为 UNKNOWN。
db2cli validate -database dbname1:server1.net1.com:50001
在下一个示例中,将实用程序与数据源名称配合使用。使用双引号 ("") 来应用数据源名称。
db2cli validate -dsn "IBM - User Acceptance"
   -connect -user <userid> -passwd <password>
db2cli writecfg
对于本节中描述的示例,假定 db2dsdriver.cfg 文件包含以下内容:
<configuration>
  <dsncollection>
   <dsn alias="alias1" name="name1" host="server1.net1.com" port="50001"> 
    <parameter name="DisableAutoCommit" value="TRUE"/>
   </dsn>
  </dsncollection>
  <databases>
   <database name="name1" host="server1.net1.com" port="50001">
    <parameter name="CurrentSchema" value="OWNER1"/>
   </database> 
  </databases>
  <parameters>
     <parameter name="IsolationLevel" value="SQL_TXN_READ_COMMITTED"/>
  </parameters>
</configuration>
以下示例将新的数据源元素添加到 db2dsdriver.cfg 配置文件:
db2cli writecfg add –dsn alias2 –database name2 -host server1.net1.com -port 50001
执行此命令后,dsncollection 节修改为:
<dsncollection>
 <dsn alias="alias1" name="name1" host="server1.net1.com" port="50001"> 
  <parameter name="DisableAutoCommit" value="TRUE"/>
 </dsn>
 <dsn alias="alias2" name="name2" host="server1.net1.com" port="50001"/>
</dsncollection>
以下示例将新的数据源元素及描述添加到 db2dsdriver.cfg 配置文件:
db2cli writecfg add -dsn alias3 -description alias3description -database name3 -host server1.net1.com -port 50001
执行此命令后,dsncollection 节修改为:
<dsncollection>
<dsn alias="alias1" name="name1" host="server1.net1.com" port="50001">
  <parameter name="DisableAutoCommit" value="TRUE"/>
</dsn>
<dsn alias="alias2" name="name2" host="server1.net1.com" port="50001"/>
<dsn alias="alias3" description="alias3description" name="name3" host="server1.net1.com" port="50001"/>
</dsncollection>
以下示例从配置文件中移除 dsn 元素:
db2cli writecfg remove -dsn alias3
执行此命令后,dsncollection 节修改为:
<dsncollection>
<dsn alias="alias1" name="name1" host="server1.net1.com" port="50001">
  <parameter name="DisableAutoCommit" value="TRUE"/>
</dsn>
<dsn alias="alias2" name="name2" host="server1.net1.com" port="50001"/>
</dsncollection>
以下示例将参数信息添加到配置文件中的现有数据源:
db2cli writecfg add –dsn alias2 –parameters “DisableAutoCommit=FALSE;CurrentSchema=OWNER2;pureQueryXml=C:\\clico”
执行此命令后,dsncollection 节修改为:
<dsncollection>
 <dsn alias="alias1" name="name1" host="server1.net1.com" port="50001"> 
  <parameter name="DisableAutoCommit" value="TRUE"/>
 </dsn>
 <dsn alias="alias2" name="name2" host="server1.net1.com" port="50001">
  <parameter name="DisableAutoCommit" value="FALSE"/>
  <parameter name="CurrentSchema" value="OWNER2"/>
..<parameter name="pureQueryXml" value="C:\clico"/>
 </dsn>
</dsncollection>
以下示例在配置文件中添加带有参数的新数据库元素:
db2cli writecfg add –database name2 –host server1.net1.com -port 50001  -parameters “LockTimeout=20;KeepAliveTimeout=20000”
执行此命令后,databases 节修改为:
<databases>
 <database name="name1" host="server1.net1.com" port="50001">
  <parameter name="CurrentSchema" value="OWNER1"/>
 </database> 
 <database name="name2" host="server1.net1.com" port="50001">
  parameter name=" LockTimeout" value="20"/>
  parameter name="KeepAliveTimeout" value="20000"/>
 </database> 
</databases>
以下示例修改配置文件中现有 dsn 元素的现有参数:
db2cli writecfg add –dsn alias1 –parameter “DisableAutoCommit=FALSE”
执行此命令后,dsncollection 节修改为:
<dsncollection>
 <dsn alias="alias1" name="name1" host="server1.net1.com" port="50001"> 
  <parameter name="DisableAutoCommit" value="FALSE"/>
 </dsn>
 <dsn alias="alias2" name="name2" host="server1.net1.com" port="50001">
  <parameter name="DisableAutoCommit" value="FALSE"/>
  <parameter name="CurrentSchema" value="OWNER2"/>
..<parameter name="pureQueryXml" value="C:\clico"/>
 </dsn>
</dsncollection>
以下示例将参数元素添加到配置文件中的全局节:
db2cli writecfg add -parameter "ReceiveTimeout=20000"
执行此命令后,全局节修改为:
<parameters>
 <parameter name="IsolationLevel" value="SQL_TXN_READ_COMMITTED"/>
 <parameter name="ReceiveTimeout" value="20000"/> 
</parameters>
以下示例从配置文件中移除数据库的参数元素:
db2cli writecfg remove –database name1 -host server1.net1.com -port 50001 –parameter “CurrentSchema”
执行此命令后,databases 节修改为:
<databases>
 <database name="name1" host="server1.net1.com" port="50001">
 </database>
 <database name="name2" host="server1.net1.com" port="50001">
  parameter name="LockTimeout" value="20"/>
  parameter name="KeepAliveTimeout" value="20000"/>
 </database>
 </databases>
以下示例从配置文件中移除 dsn 元素:
db2cli writecfg remove –dsn alias1
执行此命令后,dsncollection 节修改为:
<dsncollection>
 <dsn alias="alias2" name="name2" host="server1.net1.com" port="50001">
  <parameter name="DisableAutoCommit" value="FALSE"/>
  <parameter name="CurrentSchema" value="OWNER2"/>
  <parameter name="pureQueryXml" value="C:\clico"/>
 </dsn>
</dsncollection>
db2cli execsql
在以下示例中,假定已在 SAMPLE 数据库中创建下列表和过程:
create table employee(empid integer, empname varchar(100)

  CREATE PROCEDURE proc1 (  ) 
  DYNAMIC RESULT SETS 1 P1: 
  BEGIN
    DECLARE cursor1 CURSOR WITH RETURN FOR  SELECT * FROM fprem;  
    OPEN cursor1;
  END P1

  CREATE PROCEDURE PROC2(IN ID1 INTEGER,OUT NAME VARCHAR(20)) 
  BEGIN
  DECLARE CUR1 CURSOR WITH RETURN TO CALLER FOR SELECT * FROM EMPLOYEE1 WHERE ID=ID1; 
    OPEN CUR1; 
  END
此示例还假定 SQL 文件 test.sql 包含以下文本:
--Populate table( employee )
insert into employee(empid, empname) values(1, 'Adam')
insert into employee(empid, empname) values(2, 'Atul')
select empid, empname  from employee

--Execute the stored procedure
Call proc1( )
在控制台窗口中输入以下 db2cli 命令,以运行该文件中的 SQL 语句:
db2cli execsql –dsn sample –inputsql test.sql
在控制台窗口中,将会显示以下文本:
IBM DATABASE 2 Interactive CLI Sample Program
(C) COPYRIGHT International Business Machines Corp. 1993,1996
All Rights Reserved
Licensed Materials - Property of IBM
US Government Users Restricted Rights - Use, duplication or
disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

insert into employee(empid, empname) values(1, 'Adam')
The SQL command completed successfully.

insert into employee(empid, empname) values(2, 'Atul')
The SQL command completed successfully.

select empid, empname  from employee

EMPID EMPNAME
1, Adam
2, Atul

Call proc1()

EMPID EMPNAME
1, Adam
2, Atul
对具有 OUT 自变量的存储过程运行 CALL 语句。可以使用问号 (?) 作为 OUT 参数。
以下示例假定 SQL 脚本文件 test2.sql 包含以下文本:
CALL PROC2( 1, ?)
在控制台窗口中输入以下 db2cli 命令,以运行该文件中的 SQL 语句:
db2cli execsql –dsn sample –inputsql test2.sql 
在控制台窗口中,将会显示以下文本:
Value of output parameters
--------------------------
Parameter Name  : NAME
Parameter Value : -

ID-----------
    1

请指定 -prepareonly 选项,以准备 SQL 语句,但不运行。必须先运行 SQL 语句所需的 DDL 语句,然后才能运行带有 -prepareonly 选项的 db2cli execsql 命令。

以下示例假定 SQL 文件 test3.sql 包含以下文本:
--populate table( employee )
insert into employee(empid, empname) values(1, 'Adam');
insert into employee(empid, empname) values(2, 'Atul');
select empid, empname  from employee;
另外,假定已在数据库中创建表 EMPLOYEE。在控制台窗口中输入以下 db2cli 命令,以准备该文件中的 SQL 语句:
db2cli execsql –prepareonly –dsn sample –inputsql test3.sql
在控制台窗口中,将会显示以下文本:
IBM DATABASE 2 Interactive CLI Sample Program
(C) COPYRIGHT International Business Machines Corp. 1993,1996
All Rights Reserved
Licensed Materials - Property of IBM
US Government Users Restricted Rights - Use, duplication or
disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

insert into employee(empid, empname) values(1, 'Adam')
The SQL command prepared successfully.

insert into employee(empid, empname) values(2, 'Atul')
The SQL command prepared successfully.

select empid, empname  from employee
The SQL command prepared successfully.
If you place DDL statements that are required for DML statements in
the same file, the DML statements that require the DDL statements 
fail. For example, assume that the following text is in the file 
test4.sql, and assume that and the EMPLOYEE table has not been 
created in the database:
--create and populate table( employee )
create table employee(empid integer, empname varchar(100));
insert into employee(empid, empname) values(1, 'Adam');
insert into employee(empid, empname) values(2, 'Atul');
select empid, empname  from employee;

-- try to create another table with the same name
create table employee(empid integer, empname varchar(100));
必须先运行 CREATE TABLE 语句,然后 INSERT 和 SELECT 语句才能成功运行。
在控制台窗口中输入以下 db2cli 命令,以准备该文件中的 SQL 语句:
db2cli execsql –prepareonly –dsn sample –inputsql test4.sql
在控制台窗口中,将会显示以下文本:

IBM DATABASE 2 Interactive CLI Sample Program
(C) COPYRIGHT International Business Machines Corp. 1993,1996
All Rights Reserved
Licensed Materials - Property of IBM
US Government Users Restricted Rights - Use, duplication or
disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

create table employee(empid integer, empname varchar(100))
The SQL command prepared successfully.

insert into employee(empid, empname) values(1, 'Adam')
The SQL command failed. During SQL processing it returned:
[IBM][CLI Driver][DB2/6000] SQL0204N  "EMPLOYEE" is an undefined name.  SQLSTATE=42704

insert into employee(empid, empname) values(2, 'Atul')
The SQL command failed. During SQL processing it returned:
[IBM][CLI Driver][DB2/6000] SQL0204N  "EMPLOYEE" is an undefined name.  SQLSTATE=42704

select empid, empname  from employee
The SQL command failed. During SQL processing it returned:
[IBM][CLI Driver][DB2/6000] SQL0204N  "EMPLOYEE" is an undefined name.  SQLSTATE=42704

create table employee(empid integer, empname varchar(100))
The SQL command prepared successfully.
在此示例中,已成功准备两个 CREATE SQL 语句,但是未在数据库中创建 EMPLOYEE 表。未能成功准备 INSERT 和 SELECT 语句,因为数据库中没有 EMPLOYEE 表。
db2cli bind
以下示例绑定 db2cli.lst 列表文件:
$ db2cli bind @db2cli.lst –database “mydb:test.torolab.ibm.com:446” 
–options “BLOCKING unambig REOPT always ISOLATION RR”
LINE    MESSAGES FOR db2cli.lst
------  --------------------------------------------------------------
        SQL0061W  The binder is in progress.
        SQL0091N  Binding was ended with "0" errors and "0" warnings.
db2cli refreshldap
db2cli refreshldap 命令修改了以下 db2dsdriver.cfg 文件:

<configuration>
<dsncollection>
 <dsn alias="sample" name="sample" host="hotel53.ibm.com" port="40576” ldap=1>
  <parameter name="DisbaleAutoCommit" value="0"/>
  <parameter name="AllowDeferredPrepare" value="1"/> 
 </dsn>
 <dsn alias="EC205" name="STLEC1"  host="INEC005.ibm.com" port="446" ldap=1>
  <parameter name="InterruptProcessingMode" value="1"/>
 </dsn>
 <dsn alias="test1" name="test" host="xyz.ibm.com" port="446" ldap=1>
  <parameter name="QueryTimeoutInterval" value="15"/>
  <parameter name="Authentication" value="SERVER"/>
 </dsn>
</dsncollection>
 <databases>
  <database name="sample" host="hotel53.ibm.com" port="40576"/>
  <database name="STLEC1" host="INEC006.ibm.com" port="446">
   <parameter name="ConnectionLevelLoadBalancing" value="1"/>
  </database>
  <database name="test" host="xyz.ibm.com" port="446"/>
 </databases>
</configuration>