由于路径格式,SSIS 优先约束不起作用
SSIS Precedence Constraint Not Working Due to Path Formatting
使用 SSIS 和 MS-SQL Server 2012
我有一个 SQL 任务正在执行:
SELECT COUNT(id) as id FROM PORG_Files WHERE filename = ?
除了 0 之外它从来没有 returns 任何东西,因为 SSIS 文件名看起来像:
\\erp\shares\Save\item_1168.txt
Table 中的文件名看起来像:
\erp\shares\Save\item_1168.txt
我不认为我想像那样将文件名插入到 table 中,所以 how/where 我要格式化以便我可以进行匹配以获得依赖于此的约束火。
谢谢!
好的,如果我 运行 这个查询在 SQL 管理器中它有效。
SELECT COUNT(id) as id FROM PORG_Files WHERE filename = REPLACE('\\erp\shares\Save\item_1168.txt','\','\')
当我将等价物放入 SQL 语句的 SQL 任务编辑器时,它仍然是 returns 0
SELECT COUNT(id) as id FROM PORG_Files WHERE filename = REPLACE(?,'\','\')
您是直接将文件名存储在变量中吗?如果您将文件名存储为字符串变量的表达式,则输出格式将与您描述的相同。 4 个正斜杠 (\
) 的结果将只有 2 个,而 2 个 \
将是一个。这是因为正斜杠必须在 SSIS 表达式中转义。在变量的表达式字段中,单击省略号并在双引号内输入文本,使其成为如下例所示的表达式。
“\\erp\shares\Save\item_1168.txt”
解决方法 - 表达式
尝试使用表达式而不是传递参数:
在执行 SQL 任务中,转到表达式选项卡,为 SQLStatementSource
属性 添加一个表达式,如下所示:
"SELECT COUNT(id) as id FROM PORG_Files WHERE filename = '" + @[User::CurrentFileName] + "'"
使用 SSIS 和 MS-SQL Server 2012
我有一个 SQL 任务正在执行:
SELECT COUNT(id) as id FROM PORG_Files WHERE filename = ?
除了 0 之外它从来没有 returns 任何东西,因为 SSIS 文件名看起来像:
\\erp\shares\Save\item_1168.txt
Table 中的文件名看起来像:
\erp\shares\Save\item_1168.txt
我不认为我想像那样将文件名插入到 table 中,所以 how/where 我要格式化以便我可以进行匹配以获得依赖于此的约束火。
谢谢!
好的,如果我 运行 这个查询在 SQL 管理器中它有效。
SELECT COUNT(id) as id FROM PORG_Files WHERE filename = REPLACE('\\erp\shares\Save\item_1168.txt','\','\')
当我将等价物放入 SQL 语句的 SQL 任务编辑器时,它仍然是 returns 0
SELECT COUNT(id) as id FROM PORG_Files WHERE filename = REPLACE(?,'\','\')
您是直接将文件名存储在变量中吗?如果您将文件名存储为字符串变量的表达式,则输出格式将与您描述的相同。 4 个正斜杠 (\
) 的结果将只有 2 个,而 2 个 \
将是一个。这是因为正斜杠必须在 SSIS 表达式中转义。在变量的表达式字段中,单击省略号并在双引号内输入文本,使其成为如下例所示的表达式。
“\\erp\shares\Save\item_1168.txt”
解决方法 - 表达式
尝试使用表达式而不是传递参数:
在执行 SQL 任务中,转到表达式选项卡,为 SQLStatementSource
属性 添加一个表达式,如下所示:
"SELECT COUNT(id) as id FROM PORG_Files WHERE filename = '" + @[User::CurrentFileName] + "'"