从 cmd 到 IBM 服务器 (db2) 执行一个 .sql 文件

Execute a .sql File from cmd to IBM server (db2)

我正在尝试使用 cmd

将 .sql 文件导入 IBM db2 服务器

这是我正在使用的 cmd 行提示

cmd /c db2  -u<USER> -h<HOST> -p<PASSWORD> -D<DATABASE> <<My File Repository>/<FileName>.sql

这个cmd提示是否正确?

可以提供更多信息

这个问题经常被问到,所以你的研究。

对于 MS-Windows 上的 cmd.exe,您不能使用这种语法,因为 Db2 clp 不接受像 -u ... -h... -p... -D....

这样的参数

相反,还有其他方法可以满足您的需求。

如果 Db2 数据库与您的 clp 在同一主机名上(即是本地数据库),那么您可以使用 db2 connect to DATABASENAME,然后使用 db2 -tvf filename.sql。当数据库是远程的(在与你的 clp 不同的主机名上)时,你必须提供一个 userid/password(或证书,或令牌,取决于服务器配置)并且远程数据库必须在本地预先编目(通过XML 文件或通过目录命令)。对于本地数据库,您不需要指定用户 ID 或密码,它将作为当前登录的操作系统用户连接。

如果您更喜欢使用连接字符串,您可以修改脚本以与 CLPplus 程序兼容,该程序是一个 java 应用程序,在其命令行上接受参数。对于熟悉 Oracle SQL*Plus 的人来说,这通常是他们在使用 Db2 时的首选工具。

如果您真的想要将cmd.exe与Db2 clp一起使用到运行 SQL脚本(对于本地and remote databases) ,那么如果您准备首先执行一些基本配置步骤,则可以执行此操作。您可以选择旧式目录配置步骤,或 XML 文件。

旧式操作是:catalog tcpip node,然后是该节点上的 catalog database,然后是 db2 termainate,最后使用 db2 connect to $database user XXXX using YYYY 和 [= 连接到远程编目数据库13=]。您还可以在 SQL 脚本中使用连接语句。所有这些操作都在 Db2 在线知识中心中有详细记录,您也可以进行研究。

如果您不想执行目录操作,您也可以有一个预先准备好的 XML 文件(称为 db2dsdriver.cfg),其中包含所有数据源的所有连接详细信息-您使用的名称和数据库。您可以手动创建 XML 文件,也可以使用 db2cli 工具及其命令行以编程方式创建。 IBM 为 Db2 提供的 CLI 驱动程序在 运行 时读取和解释该文件。这使您无需使用显式目录操作即可连接到本地和远程 DSN,因为 XML 文件包含所有详细信息。然后,CLP 将允许您针对这些 DSN 编写 运行 脚本。此文件记录在 Db2 知识中心,并且可以位于(默认情况下)CLI 驱动程序 cfg 目录中,或通过环境变量 DB2DSDRIVER_CFG_PATH 位于任何位置。有关所有详细信息,请参阅文档。

如果您的远程数据库 运行 在 Db2-for-i 上,或者 Db2-for-z/os,那么 不同的 注意事项适用。首先 IBM 提供的 CLI 驱动程序都需要许可证才能连接成功。请参阅文档。其次,对于 Db2-for i (as/400),您应该只考虑使用单独的 IBM 产品进行 IBM i 系列访问及其 odbc 选项。

如果您的远程 Db2 数据库在 Linux/Unix/Windows/zLinux/cloud 上,那么您在本地不需要任何许可证。