SSIS中执行SQL任务组件参数传递的问题

原文:SSIS中执行SQL任务组件参数传递的问题

症状: 执行SQL任务,传递参数到子查询中,执行报错。

错误: 失败,错误如下:“无法从使用 sub-select 查询的 SQL 语句中派生出参数信息。请在准备命令之前设置参数信息。”。失败的原因可能有: 查询本身有问题、未正确设置 "ResultSet" 属性、未正确设置参数或未正确建立连接。

原因: 

在 OLE DB 连接管理器中使用参数

如果执行 SQL 任务使用 OLE DB 连接管理器,则该任务的 BypassPrepare 属性可用。如果执行 SQL 任务使用带有参数的 SQL 语句,则应将此属性设置为 true。

使用 OLE DB 连接管理器时,不能使用参数化的子查询,这是因为执行 SQL 任务不能通过 OLE DB 访问接口得到参数信息。但是,您可以使用表达式将参数值串联到查询字符串中,并设置该任务的 SqlStatementSource 属性。

解决方法:设置BypassPrepare 属性为 true。

时间: 2024-07-30 17:03:38

SSIS中执行SQL任务组件参数传递的问题的相关文章

hive中执行sql语句出现的问题

The expression after ELSE should have the same type as those after THEN: "bigint" is expected but "i hive中执行sql语句: select pc.category_id, sum(case when t.so_month between 3 and 5 then t.order_item_num else 0 end) as spring, sum(case when t.

php-PHP在循环中执行SQL问题

问题描述 PHP在循环中执行SQL问题 写了一个for循环来执行插入语句但是如果在循环中某一次不符合条件要退出循环时怎么样才能将之前执行的插入取消呢? 解决方案 这个需要使用事务.在循环开头的时候开始事务,在结束的时候提交,在中途退出的时候回滚. 参考http://www.cnblogs.com/winner/archive/2011/11/09/2242272.html 解决方案二: 参考:http://www.cnblogs.com/dreamhome/archive/2012/10/22/

请大家帮忙-实现使用C#语言,在.net开发平台中执行sql语句

问题描述 实现使用C#语言,在.net开发平台中执行sql语句 实现使用C#语言,在.net开发平台中执行sql语句了,如查询某张表数据,向某张表插入一条数据,在某张表中编辑一条数据,删除某张表的一条数据. 解决方案 给你段代码,你参考一下 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.W

C#和Java中执行SQL文件脚本的代码(非常有用)

原文:C#和Java中执行SQL文件脚本的代码(非常有用) 我们在做程序的时候有事后会涉及到利用sql文件 直接执行,可是在sql文件中有很多注释,我们要一句一句的执行首先必须的得把sql文件解析 去除其中的注释,还有把每一句sql语句取出来,然后再利用各个平台中的数据库相关执行它.   接下来放代码! java版本的 001 package com.zz; 002   003 import java.io.*; 004 import java.util.ArrayList; 005 impor

java-为什么我在Java类中执行SQL语句,程序没错,而数据库却没执行??

问题描述 为什么我在Java类中执行SQL语句,程序没错,而数据库却没执行?? 解决方案 不知道画了删除线是什么意思,你确认这些代码有效么 解决方案二: 你用的什么啊?Hibernate?还是别的框架啊?Hibernate的话,可能是事务没有提交,你执行flush方法就可以了 解决方案三: 代码可以贴全一点吗?看不到关键部分 解决方案四: 代码内容太少了,你的Sqlca是个什么,最起码给个声明. 解决方案五: 你的sqlca是什么啊? 解决方案六: executeSQL方法问题 这个方法只能是查

100分在线急求 程序中执行.sql脚本 mysql的

问题描述 我想要在程序中执行mysql的脚本文件比如说点击一个button执行aaa.sql,请各位大虾给与帮助,给100分! 解决方案 解决方案二:自己来顶解决方案三:顶不要沉啊解决方案四:顶不要沉啊解决方案五:如果有存储过程,直接点击button时执行相关存储.如果没有存储过程,单独放进一个文本文件吧,要执行的时候读文件传sql过去!不过怎么感觉这是在多此一举啊.后缀为sql的文件就算是查询分析器打开也不是会自动执行的.你还是得调用执行的命令对象.和一般写法没多大区别的啊.解决方案六:顶不要

mysql命令行中执行sql的几种方式总结_Mysql

1.直接输入sql执行 MySQL> select now(); +---------------------+ | now() | +---------------------+ | 2013-09-18 13:55:45 | +---------------------+ 1 row in set (0.00 sec) 2.执行编写好的sql脚本 mysql> source H:/1.sql +---------------------+ | now() | +--------------

以Linux的shell程序为入口到Teradata中执行SQL

Linux的Shell程序本身并不能直接访问Teradata,它是通过Teradata的BTEQ功能来间接实现访问.这个BTEQ相当于Oracle的SQLPLUS,总之是一个命令行工具. Teradata厂商提供Linux上的BTEQ安装包(其依赖的包也要安装). 下列代码不妨保存为"test_td.sh": cat <<! | /usr/bin/bteq .LOGON 192.168.9.100/td_user,123456; select * from my_db.my

在c#中执行sql语句时传递参数的小经验

sql|语句|执行 c#中与数据库打交道,免不了要用到各种sql语句,而给sql语句传参数也是不可避免的.以下是我在此方面上的一点总结(高手勿见笑): 1> 直接写入法:      例如:             int Id =1;             string Name="lui";             cmd.CommandText="insert into TUserLogin values("+Id+",'"+Name