从Windows批处理脚本运行DB2命令

时间:2017-12-10 17:28:46

标签: batch-file db2

我正在尝试从Windows批处理脚本运行DB2命令(Import)。

我的方法是......

  1. 调用DB2命令提示符:DB2CMD.exe DB2SETCP.BAT DB2.EXE
  2. 连接到数据库:使用PWD连接到DBNAME USER USERNAME
  3. 执行DB2命令:IMPORT FROM ...
  4. 退出
  5. 批处理脚本看起来像这样..

    {% set deduction = 'Less Withholding Tax Thereon' %}
    {% if 'Witholding' in deduction %}
        {% set test = "with" %}
    {% else %}
        {% set test = "out" %}
    {% endif %}
    {{ test }}
    

    直到第二步工作,蝙蝠脚本退出而不运行第三步。

    任何人都可以指导我......谢谢!

1 个答案:

答案 0 :(得分:0)

要在Microsoft Windows上的CMD / BAT文件中运行Db2命令,您需要安装Db2客户端,并且可以开始所有BAT或CMD文件 使用下面的模式。这使得脚本可以打开DB2CMD.EXE(如果尚未打开)(因此您不需要手动执行)。您还需要对数据库进行编目,以便可以从Windows CMD.EXE或DB2CMD.EXE命令行访问数据库。在将命令放入脚本之前,始终在命令行验证命令。

当您收到任何错误时,您必须在请求帮助时指定确切错误,方法是使用db2cmd窗口中的复制/粘贴或附加屏幕截图。

您的第二步不能在没有首先显示某些错误消息的情况下退出,尽管您可能需要确保在您看到该消息之前窗口没有关闭。导致失败的原因有很多,但您没有提供有关 Db2给出的原因的信息。如果您编辑问题以指定缺失的错误详细信息,那么您将获得更多帮助。

如果在运行数据库的同一主机名上运行脚本,则无需指定用户标识/密码,然后以当前登录的用户身份进行连接。

如果需要使用特定用户标识(与登录到Windows的用户不同)连接到数据库,或者需要连接到远程数据库,则必须为connect命令指定密码。您可以要求用户输入密码,以获取交互式脚本。如果您需要无人参与脚本,则应避免在脚本中以纯文本格式化密码,或使用runas。

下面的示例显示了连接到本地数据库和远程数据库(仅选择其中一种方法)。

@if ""%DB2CLP%""=="""" db2cmd /c /i /w ""%0"" %* && goto :EOF

@rem for connecting to a local database as current logged-in Windows account (no password required)
db2 -v connect to dbname
@if errorlevel 1 ( @echo ""FAILED to connect"" && @goto :EOF )


@rem for connecting to a remote database, or connecting with a different account
db2 -v connect to dbname user YOURUSER using THEPASSWORD
@if errorlevel 1 ( @echo ""FAILED to connect"" && @pause ... && @goto :EOF )


db2 -v "IMPORT FROM TO ...  "
@if errorlevel 2 ( @echo "FAILED to export..." && @pause ... && @goto :EOF )
db2 -v connect reset