我已经使用了简单的Web服务来添加两个数字,我得到的结果是xml格式,我已经存储在名为my_data的变量中,现在我必须通过写入将该结果插入到名为Data_result的sql表中在oledb源代码编辑器中查询,但无法使用变量插入数据。我只想将我的Web服务计算的所有结果存储在sql表中。
由于我是SSIS的新手,所以非常感谢任何帮助
当我尝试通过以下查询命令插入数据时:
"INSERT INTO Data_Result(Result) SELECT '"+@USER::my_data+"'"
这是错误的:
数据流任务时出错[OLE DB源[55]]:SQL命令没有返回列转换
--------根据给出的解决方案更新错误说明
执行查询时出错 如果我放置没有“”引号的表达式,那么我会得到以下错误
如果我将查询放在双引号中,则会显示以下错误
如果我从User :: Data Variable中删除User并将查询放在双引号中,那么我会得到以下屏幕 虽然表达式计算但是在我尝试在Execute sql Task的表达式列中搜索变量后继续对此计算表达式进行后,我无法找到新创建的变量,如下所示
------------ 根据其他查询更新了问题 ----------
以下是我整个工作流程的图片
这就是我在集合选项卡
下的每个循环容器中所做的
以下设置我在变量映射选项卡之间完成了
在下面的屏幕截图中,我使用执行SQL任务使用插入查询将从Web服务任务获取的数据输入数据库,但无法激发正确的插入查询,
以下是我的XML文件,
<?xml version="1.0" encoding="utf-16"?>
Reshma
1988-09-23T00:00:00 ,
我从web服务收到的这个名字和生日,我想把它插入数据库表
-------------- 更新了foreach循环容器的问题--------
下面是我正在使用的foreach循环容器,
但是我仍然没有将节点值变为变量,而且我想使用对象类型变量,或者它可以使用字符串类型的变量。
答案 0 :(得分:2)
我建议你在另一个变量中构建这个SQL语句,如下所述:
http://consultingblogs.emc.com/jamiethomson/archive/2005/12/09/2480.aspx
然后在执行SQL语句中使用该变量
通常你会尝试参数化查询,但在这种情况下(和许多其他情况一样)它将不起作用。
以下是一些更详细的说明:
一个。生成动态SQL
在属性中,单击“表达式”并按如下方式构建表达式:
"INSERT INTO Data_Result(Result) VALUES ('"+@[USER::my_data]+"')"
按评估并验证输出是否有效SQL(您甚至可能希望将其粘贴到SSMS中并进行测试)
B中。获取执行SQL任务以运行SQL:
现在,my_data中发生的任何更改都将自动应用于执行SQL任务
为初学者试试并回复我。