【发布时间】:2014-10-23 16:19:05
【问题描述】:
我正在使用 Informatica 9.5 生成一个 .CMD 文件。它创建两个 MOVE 命令(在同一个文件中,2 个单独的行),路径从参数文件中选取。 MOVE 命令的总长度超过 256 个字符,当生成 .CMD 文件时,它会在达到该字符限制时截断此路径。
我该如何解决这个问题?
我在 Informatica 转换中使用的表达式是:
'MOVE "' || $$FROM_PATH1 || 'FOO.ZIP" "' || $$TO_PATH || 'FOO' || '.ZIP"' || CHR(10) ||
'MOVE "' || $$FROM_PATH2 || 'BAR.ZIP" "' || $$TO_PATH || 'BAR' || '.ZIP"'
当 CMD 文件生成时,它会截断第二个变量,看起来像这样:
MOVE "\\ABC\XYZ\FOLDER1\FOO.ZIP" "\\ABC\XYZ\FOLFOO.ZIP"
MOVE "\\ABC\XYZ\FOLDER2\BAR.ZIP" "\\ABC\XYZ\FOLBAR.ZIP"
假设 $$TO_PATH 是 \\ABC\XYZ\FOLDER3\,请注意它已经截断了变量路径,但仍然添加了硬编码字符。什么给了?
【问题讨论】:
-
听起来您用于生成 .cmd 文件的工具存在问题(或您的使用方式)。
-
如果 MOVE 命令的总长度小于 256 个字符,则可以正常工作。因此,Informatica 将某处的行字符限制设置为 256,或者 CMD 文件的每行不能超过 256 个字符。
-
您可以通过在 cmd.exe 提示符下键入 echo 命令并查看是否可以回显超过 255 个字符来自行测试。你会看到它可以。因此,限制在于您用于生成 .cmd 文件的工具,而不是 cmd.exe 本身。
-
是不是表达式的端口太短了?
-
@MarekGrzenkowicz 谢谢你的回答。我进去查看了那个转换中使用的参数,那个特定的参数确实有错误的精度。不在表达式或目标端口上,而是在参数精度本身上。愚蠢的错误。
标签: windows path cmd business-intelligence informatica