db2cli - Db2 交互式 CLI 命令

CLI中启动用于设计和原型设计的交互式调用级别接口 (CLI) 环境。

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

授权

需要的连接

命令语法

Read syntax diagramSkip visual syntax diagramdb2cli validateValidate options-helpbindfilenameBind options-helpregisterdsnRegister DSN optionscsc-infoExecsql optionsinstallInstall optionswritecfgWrite configuration file optionsrefreshldap-global-help
Validate options
Read syntax diagramSkip visual syntax diagram-dsndsn_name-databasedatabase:server:port-connstringstring-connectConnect options-all-foutput_file
Connect options
Read syntax diagramSkip visual syntax diagram-displaylic-odbcdsn-useserverlic-userusername-passwdpassword-userusername--keystoredbpasswordkeystoredbpasswd-userusername
Bind options
Read syntax diagramSkip visual syntax diagram-dsndsn_name-databasedatabase:server:port-userusername-passwdpassword-options"various_bind_options"
Register DSN options
Read syntax diagramSkip visual syntax diagram-add-dsndsn_name-alldsn-includeldap-remove-copynamecopy_name-allcopies-force-dsndsn_name-alldsn-list-copynamecopy_name-allcopies-user-system-help
Execsql options
Read syntax diagramSkip visual syntax diagram execsql -execute-prepareonly Server options-connstringstring -inputsqlsqlfile-outfileoutput_file-statementdelimiterdelimiter-commentstartcomment_indicator-help
Server options
Read syntax diagramSkip visual syntax diagram-dsndsn_nameAuthentication options
Authentication options
Read syntax diagramSkip visual syntax diagram-userusername-passwdpasswd
Install options (available only on Windows)
Read syntax diagramSkip visual syntax diagram-setup-cleanup-appdatapathpath_name-cleanup-force-help
Write configuration file options
Read syntax diagramSkip visual syntax diagramadd-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
Read syntax diagramSkip visual syntax diagram -database db_name -host host_name -port p_number
add-options
Read syntax diagramSkip visual syntax diagram-parameter-parameters";parameter_name=parameter_value"-sessionglobalvariables";globvar_name=globvar_value"-specialregisters";register_name=register_value"
remove-options
Read syntax diagramSkip visual syntax diagram-parameter-parameters";parameter_name"-sessionglobalvariables";globvar_name"-force-specialregisters";register_name"-force

命令参数

validate

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

IBM 数据服务器客户机发出 db2cli validate 命令时,列表仅限于安装在 Windows 操作系统上的 IBM 数据服务器客户机 。 要列出安装在 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
---connstring 字符串
指定目标数据库的数据库连接字符串。 必须以 SQLDriverConnect API 函数中的 InConnectionString 参数定义的格式指定信息。 例如,
DATABASE=SAMPLE;HOSTNAME=test.ibm.com;PORT=50000;UID=db2user;PWD=db2pwd
注:
  • db2dsdriver.cfg 文件或 db2cli.ini 文件中也存在连接字符串中的参数时,将使用连接字符串中的值。
  • 如果多次将 -connsting 选项与 db2cli validate 命令配合使用,那么将使用最后一个 -connstring 选项的值。
-all
验证系统级别 db2dsdriver.cfg 文件中存在的每个数据库和 DSN 条目。 在 Microsoft Windows 平台上运行时,使用 -all 将验证系统级别和用户级别 db2dsdriver.cfg 文件中存在的每个数据库和 DSN 条目。 在 Windows 环境中,用户级别 db2dsdriver.cfg 文件作为 C:\users\<username>\db2dsdriver.cfg保存在用户的主目录中。
-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) 来测试位于 IBM i 的 Db2Db2 for z/OS 服务器上的许可证。 -useserverlic 选项会绕过客户机端许可证检查。 显示许可证版本,以及该用户定义函数 (UDF) 或存储过程 (SP) 是否用于许可证发放。
请记住: 只能将 -useserverlic 选项用于与 IBM i 的 Db2Db2 for z/OS 服务器的连接。
-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"
指定绑定选项及相应的值。 可用的绑定选项如下所示:
  • 阻止
  • COLLECTION
  • 编码
  • 通用
  • GRANT
  • GRANT_ROLE
  • 隔离
  • 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.inidb2dsdriver.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 Data Source Administrator 中除去指定 Db2 副本的所有用户或系统 ODBC 数据源条目。 db2cli register -remove -alldsn 命令在 Windows 操作系统上可用。
-copyname copy_name
从 Microsoft ODBC Data Source Administrator 中除去指定 Db2 副本的用户或系统 ODBC 数据源条目。 未指定副本名称时,将会使用当前副本名称。 当前副本名称是从中运行 db2cli 实用程序的客户机的副本名称。 如果将 -copyname 选项与 -alldsn 选项一起指定,那么将从指定的 Db2 副本中除去 Microsoft ODBC 数据源管理器中的所有数据源条目。 db2cli register -remove -copyname 命令在 Windows 操作系统上可用。
-allcopies
从 Microsoft ODBC Data Source Administrator 中除去所有 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 Data Source Administrator 中注册的所有系统或用户 IBM Data Server ODBC 数据源。
-copyname copy_name
在 Microsoft ODBC Data Source Administrator 中列出指定 Db2 副本的用户或系统 ODBC 数据源条目。 未指定副本名称时,将会使用当前副本名称。 当前副本名称是从中运行 db2cli 实用程序的客户机的副本名称。 db2cli register -list -copyname 命令在 Windows 操作系统上可用。
-allcopies
列出 Microsoft ODBC Data Source Administrator 中所有 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 语句以定界符分隔。 仅使用可以准备的语句。 不允许使用 Db2 命令,例如 DESCRIBE TABLEBIND

输入 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
指定<数据库>分节的连接信息。 此信息包括数据库名称、数据库所在的主机名以及数据库服务器的端口号。

如果 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> 子节中添加一个新的会话全局变量参数元素。

如果指定的会话全局变量参数元素已存在于配置文件中,<数据库>分节中的会话全局变量值将根据 -sessionglobalvariables 选项指定的值更新。

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

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

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

如果指定的特殊寄存器参数不在 db2dsdriver.cfg 配置文件的 <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> 子节中添加一个新的会话全局变量参数元素。

如果指定的会话全局变量参数元素已经存在于配置文件中,<参数> 子节中的会话全局变量值将根据 -sessionglobalvariables 选项指定的值进行更新。

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

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

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

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

如果指定的特殊寄存器参数不在 db2dsdriver.cfg 配置文件的 <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> 子节中不存在专用寄存器,那么不会执行任何操作。
-数据库 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 服务器的当前用户标识指定的配置信息。 使用 db2cli refreshldap 命令创建的 IBM 数据服务器驱动程序配置文件中的所有 DSN 条目都包含 LDAP="1 " 属性。

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

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

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

如果 IBM 数据服务器驱动程序配置文件不存在,那么 db2cli refreshldap 命令会创建该文件。

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

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

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

可以对任何 IBM Db2 Data Server 产品和 IBM Db2 数据库产品发出 db2cli refreshldap 命令。

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

使用说明

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

支持三种类型的命令:
CLI commands
对应于 CLI支持的每个函数调用 (并具有相同的名称) 的命令。
Support commands
没有等效 CLI 功能的命令。
Additional modes
您可以使用 db2cli 命令的其他方式来验证和测试 CLI 环境配置。

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

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

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

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

命令行 ODBC 注册: 要配置和注册 DSN for Windows:
  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 文件中 sample DSN 名称的 [DSN] 部分以及 db2dsdriver.cfg 文件中 sample DSN 名称的 <dsn> 元素。 有效和无效的关键字均会显示;无效的关键字列示为 UNKNOWN。
db2cli validate -dsn sample
以下示例显示了使用 -connstring 选项时的命令语法:
db2cli validate -connstring “dsn=sample”
在下一个示例中,实用程序将读取 db2cli.ini 文件中的 [COMMON] 部分、数据库 dbname1 的 <database> 部分、服务器 server1.net1.com 以及 db2dsdriver.cfg 文件中的端口 50001。 有效和无效的关键字均会显示;无效的关键字列示为 UNKNOWN。
db2cli validate -database dbname1:server1.net1.com:50001
以下示例显示了使用 -connstring 选项时的命令语法:
db2cli validate -connstring “database=dbname1;hostname=server1.net1.com;port=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 语句,但不运行。 在运行带有 -prepareonly 选项的 db2cli execsql 命令之前,必须运行 SQL 语句所需的 DDL 语句。

以下示例假定 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>