我正在尝试从Windows批处理脚本运行DB2命令(Import)。
我的方法是......
批处理脚本看起来像这样..
{% set deduction = 'Less Withholding Tax Thereon' %}
{% if 'Witholding' in deduction %}
{% set test = "with" %}
{% else %}
{% set test = "out" %}
{% endif %}
{{ test }}
直到第二步工作,蝙蝠脚本退出而不运行第三步。
任何人都可以指导我......谢谢!
答案 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