0

我已经使用简单的 Web 服务来添加两个数字,并且我得到了 xml 格式的结果,该结果存储在名为 my_data 的变量中,现在我必须通过在 oledb 中编写查询将该结果插入名为 Data_result 的 sql 表中源编辑器,但无法使用变量插入数据。我只想将我的 Web 服务计算的所有结果存储在 sql 表中。

由于我是 SSIS 的新手,非常感谢任何帮助

当我尝试通过以下查询命令插入数据时:

"INSERT INTO Data_Result(Result) SELECT '"+@USER::my_data+"'"

它给出了错误:

数据流任务 [OLE DB 源 [55]] 出错:SQL 命令未返回列转换

--------根据给出的解决方案更新了错误说明

执行查询时出错如果我在没有“”引号的情况下放置表达式,那么我会收到以下错误 在此处输入图像描述

如果我将查询放在双引号中,则会显示以下错误 在此处输入图像描述

如果我从 User::Data 变量中删除用户并将查询放在双引号中,那么我会得到以下屏幕 在此处输入图像描述 ,尽管表达式会计算,但是当我尝试在 Execute sql 的表达式列中搜索变量时,在进一步处理这个计算的表达式之后任务,然后我找不到新创建的变量,如下图 在此处输入图像描述

------------根据其他查询更新问题----------

这是我整个工作流程的图片

在此处输入图像描述

这就是我在收集选项卡下的每个循环容器中所做的

在此处输入图像描述

我在变量映射选项卡之间完成了以下设置,

在此处输入图像描述

在下面的屏幕截图中,我正在使用 Execute SQL Task 使用插入查询将从 Web 服务任务获得的数据输入数据库,但无法触发正确的插入查询,

在此处输入图像描述

下面是我的 XML 文件,

<?xml version="1.0" encoding="utf-16"?>

瑞诗玛

1988-09-23T00:00:00 ,

我从网络服务收到的这个名字和生日我想把它插入到数据库表中

-------------- foreach 循环容器的更新问题--------

下面是我正在使用的 foreach 循环容器,

在此处输入图像描述

但是我仍然没有将节点值放入变量中,而且我想使用对象类型变量或者它可以使用字符串类型的变量。

4

1 回答 1

2

我建议您在另一个变量中构建此 SQL 语句,如下所述:

http://consultingblogs.emc.com/jamiethomson/archive/2005/12/09/2480.aspx

然后在执行 SQL 语句中使用该变量

通常,您会尝试对查询进行参数化,但在这种情况下(与许多其他情况一样)它将不起作用。

以下是一些更详细的说明:

A. 生成动态 SQL

  1. 创建一个字符串类型的新 SSIS 变量
  2. 在属性中,将其“评估为表达式”设置为 TRUE
  3. 在属性中,单击“表达式”并构建一个表达式,如下所示:

    "INSERT INTO Data_Result(Result) VALUES ('"+@[USER::my_data]+"')"

  4. 按 Evaluate 并验证输出是否为有效 SQL(您甚至可能希望将其粘贴到 SSMS 中并进行测试)

B. 获取执行 SQL 任务来运行您的 SQL:

  1. 在您的页面上放置一个执行 SQL 任务。设置它的连接
  2. 突出显示执行 SQL 任务,转到属性并单击表达式
  3. 选择属性“SQLStatementSource”。在表达式中选择您在步骤 A 中构建的变量,然后按评估。
  4. 在所有内容上按 OK

现在 my_data 中发生的任何更改都将自动应用于您的执行 SQL 任务

尝试一下,然后回复我。

于 2013-09-09T11:49:58.677 回答