Bug? Wrong Count In The Data Flow Task In Debug Mode
Mar 10, 2008
I just had this happen twice in a row. The data flow task is showing a number of records almost twice as high as the actual data that is going into the table. This happened to me in two different DFT's with different data.
I am using an OLEDB source which uses a query something like:
select * from functiona()
In the DataFlowTask I see it had around 400,000 Rows go through the path all the way to the deastionation..
However I know that isn't right. If I do:
select count(*) from functiona() I get 200000 rows. Now the weird thing is if I check the table that it inserted to, it has the right number of rows, 200,000. (Numbers are not exact).
This would actually be funny if I weren't under serious time constraints right now. I have an SSIS project with several script tasks in the control flow. I put breakpoints in one of them to allow me to step through and see whats going on. However, when I start the project, the IDE brings up the script editor for a different script task. The breakpoints in this task are actually on the same line numbers as the task I need to debug but the code is all wrong. I checked the task for which the code is being displayed and there are no breakpoints there.
How can I debug data flow task. From this article (http://www.databasejournal.com/features/mssql/article.php/3567961) and this video (http://www.jumpstarttv.com/Media.aspx?vid=3) I found that when we are executing the task, the data count will be shown along with color coded task but when I debug the package, no count is shown. I have SQL and source and flat file as destination. There is nothing stored in the destination file but the sql script returns the data.
I'm trying to get a record count out of a databse using OLE DB Source and row count tasks but keep getting an error. I set up a variable as int32 and select the variable name in the row count task and when I go to the Input Columns tab to select a field to count, it gives me this error:
Error at Data Flow Task[Row Count[505]]: The component "Row Count" (505) has forbidden the requested use of the input column with lineage ID 32.
I have a data flow task that moves all the rows from 18 tables on a production server to a reporting services server. One table, which does not contain the most rows (about 650K rows) reports all the rows have been transferred. However, if I go in to the SQL Mgmt Studio and do a Select count(*) on the table, there are only 110k rows.
Hi, I'm trying to implement an incremental data pull (Oracle to SQL) based on Andy's blog: http://sqlblog.com/blogs/andy_leonard/archive/2007/07/09/ssis-design-pattern-incremental-loads.aspx
My development machine is decent: 1.86 GHz, Intel core 2 CPU, 3 GB of RAM. However it seems the data flow task gets hung whenever I test the package against the ~6 million row source, as can be seen from these screenshots. I have no memory limitations on the lookup transformation. After the rows have been cached nothing happens. Memory for the dtsdebug process hovers around 1.8 GB and it uses 1-6 percent of CPU resources continuously. I am not using fast load to insert new records into my sql target table. (I am right clicking Sequence Container 3 and executing this container NOT the entire package in the screenshots)
The same package works fine against a similar test table with 150k rows. http://i248.photobucket.com/albums/gg168/boston_sql92/7.jpg http://i248.photobucket.com/albums/gg168/boston_sql92/8.jpg
The weird thing is it only takes 24 minutes for a full refresh of the entire source table from Oracle to the SQL target table. Any hints,advice would be appreciated.
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.Odbc.OdbcException: ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specifiedSource Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified] System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) +35 System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle) +131 System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +98 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +27 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +47 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105 System.Data.Odbc.OdbcConnection.Open() +37 DBConnection.open() +12 ASP.global_asax.Session_Start(Object sender, EventArgs e) +35 System.Web.SessionState.SessionStateModule.RaiseOnStart(EventArgs e) +2163182 System.Web.SessionState.SessionStateModule.CompleteAcquireState() +154 System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData) +542 System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +90 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42 ODBC version 3.526.1830.0strconn = "DSN=testserver;uid=tester;pwd=tester;DATABASE=Test_Database"I've Test_Database on 2 machines (same data in both machines), one is in SQL 2005 server and another one is in SQL 2000 server.When the website was published, it can't work. (with both database). But it work in debug mode in Visual Studio2005.The website can't work when use ODBC connection but it work when use SqlClient.Help me solve this problem please. T_T Thanks in advance,
I am trying to create a simple BI Application for SSIS. In Visual Studio 2005 I just get a Data Flow Task from the toolbar and add it to the project. When I double click it I get the following error:
The task with the name "Data Flow Task" and the creation name "DTS.Pipeline.1" is not registered for use on this computer.
Then when I try to delete it it gives this other error:
Cannot remove the specified item because it was not found in the specified Collection.
I am creating this application in an administrator account in this computer, so I doubt the problem is related to permissions. I am running SQL Server 2005 and Visual Studio 2005 in WinXP Tablet PC Edition.
Any suggestions why this is happening and how to fix it?
I am using SQL 2005 SSIS. I am joining several large tables and then the move result into another table in the same database.
I would like know which method is faster:
Use Execute SQL Task to insert the result set to the target table
Use the Data Flow Task to insert the result set to the target table. (Use OLE DB source to execute SQL command and then use the SQL destination) Could you tell me why then other is slower?
I have a stored procedure that is executed via a sql script task that returns a full result set. I map this result set to a variable or object type. Is there a way to use this variable as a data source in a subsequent data flow task?
I created a package with SQL 2005. The package gets the Access DB and then inserts it into SQL Server.
If I open the package in .NET, I can see the SQL Task and Data Flow Task. The SQL Task has a property sqlstatementsource, which has the necxessary SQL code to create the tables.
How can I tell the SQL Task to recompile the SQL code if I give it another DB name, because the tables differ and don't map in the Data Flow Task
I have one data flow control. Source is SQL server and destination is flat file destination. I have one derived column placed in between these two. This functionality works fine. I would like to sum one column data and count total no. of columns and put it in global variable. How can I achieve it?
I have a table which has been loaded from various source feeds. The SourceId relates to the source name and the SourceCompanyId is the sources primary key for the company. I am basically trying to create one row with all the SourceCompanyIds in my column headers. What data flow tasks would be necessary in SSIS?
I want to export data from SQL Server2005 to an Excel spreadsheet thru "Data Flow Task". I am using OLE DB for SQL Server for the source connection and a Connection To Excel as my destination source. The Excel spreadsheet (2003) exists and has the first row with column names. I don't have any warnings before trying to execute.
While executing the tasks, I got the error Error: 0xC0202025 at Data Flow Task, Excel Destination [427]: Cannot create an OLE DB accessor. Verify that the column metadata is valid. Error: 0xC004701A at Data Flow Task, DTS.Pipeline: component "Excel Destination" (427) failed the pre-execute phase and returned error code 0xC0202025.
After analysing I found in the DataFlow --> Excel destination --> Advanced Editor for Excel Destination, the default data type for txtRemarks shows as "Unicode string [DT_WSTR]". But this is supposed to be "Unicode text stream [DT_NTEXT]". Even if I change the data type in the design time, It doesn't accept.
I need to call a stored procedure to insert data into a table in SQL Server from SSIS data flow task. I am currently trying to use OLe Db Destination, but I am not sure how to map inputs to OLE DB Destination to my stored procedure insert. Thanks
I'm having problems getting a package that I'm trying to develop to run consistently.
This package is using and IBM OLE DB Provider for DB2 connection manager to move data from a remote DB2 for Windows source to a Native OLE DBSQL Native Client connection manger for a SQL 2005 destination.
Sometimes the package works. Sometimes it doesn't. When it doesn't, a command window briefly flashes in Visual Studio before execution "completes". There are no error messages even though the job aborts and no data is moved. The only indication of failure is that the data flow task never changes to green and the output reports that the package was "Canceled". Here's the debug output I'm getting:
Information: 0x40016041 at Integrity_Report_ABD: The package is attempting to configure from the XML file "O:JrsfilesScriptsSSISConfigDB.dtsConfig".
Information: 0x40016040 at Integrity_Report_ABD: The package is attempting to configure from SQL Server using the configuration string ""SSISConfiguration";"[dbo].[SSISConfigurations]";"DMS.EDW.EtlData";".
Information: 0x40016040 at Integrity_Report_ABD: The package is attempting to configure from SQL Server using the configuration string ""SSISConfiguration";"[dbo].[SSISConfigurations]";"FG.DCS.ABD";".
This is the first time we've tried to connect to our WinDB2 servers with SSIS. I'm thinking that I may need to move away from this type of connection and revert back to something like ODBC.
Exception ex.Message I am getting in debug mode calling AcquireConnection is much shorter than the logged message in run time because all the errors come to output window in debug. Is there any way to get all these errors description from exception object in debug time to be able to parse it? Thanks.
I am new to SSIS. I need some help in designing the below dataflow task.
-- Teacher creates several tasks and each task is assigned to multiple students -- The teacher table contains contains all the tasks created a every teacher use ods go create table teacher ( yr int, tid int, tname varchar(20), taskid int
)
insert into teacher values(2007,101,'suraj','task1') insert into teacher values(2007,101,'suraj','task2') insert into teacher values(2007,102,'bharat','task3')
insert into teacher values(2007,103,'paul','task4') insert into teacher values(2007,103,'paul','task5') insert into teacher values(2007,103,'paul','task6')
-- Teacher "suraj" has created 2 tasks -- Teacher "bharat" has created 1 task
select * from ods..teacher yr tid tname taskid ============================ 2007 101 suraj 1111 2007 101 suraj 1122 2007 102 bharat 2222
-- Students table contains studentid(sid),teacherid(i,e tid ) & taskid drop table students
create table students ( yr int, sid varchar(10), tid int, taskid varchar(10) )
truncate table students
insert into students values(2007,'stud1',101,'task1') insert into students values(2007,'stud1',101,'task2')
insert into students values(2007,'stud2',101,'task1') insert into students values(2007,'stud2',101,'task2')
--Note : stud1,stud2 comes under teacher with tid "101"
insert into students values(2007,'stud3',102,'task3')
-- Note : stud3 and stud4 comes under teacher with tid "102"
insert into students values(2007,'stud4',103,'task4') insert into students values(2007,'stud4',103,'task5') insert into students values(2007,'stud4',103,'task6')
insert into students values(2007,'stud5',103,'task4')
select * from students yr sid tid taskid ---------------------------- 2007 stud1 101 task1 2007 stud1 101 task2
Now in my target table i need to load the data in a such a way that
use targetdb go drop table trg go
create table trg ( yr int, -- data should load from teacher.yr tid int, taskid int(20), cnt int
)
Mapping in target column and value to be loaded ================================================== yr -- teacher.yr tid -- teacher.id taskid -- this need to start a new sequence of numbers starting from 1 for each teacher and dont want the task id to be copied as it is. cntofstudents -- need to count no of students from "students" table for a given teacher and for his assignment
For example for teacherid "101" and taskid "task1" there are 2 students again for the same teacher "101" and taskid "task2" there are 2 students
For teacher "102" and taskid "task3" there is only 1 student
Similary for teacher "103"
Relation ========
Teacher table | Students Table yr | yr tid | tid
After i run the ETL the data should look as follows :
insert into trg values(2007,101,1,2) insert into trg values(2007,101,2,2)
insert into trg values(2007,102,1,1)
insert into trg values(2007,103,1,2) -- task4 is created by teacher "103" and assigned to 2 students stud4 and stud5 insert into trg values(2007,103,2,1) -- task5 is created by teacher "103" and assigned to 1 student i.e stud4 insert into trg values(2007,103,3,1) -- task6 is created by teacher "103" and assigned to 1 student i.e stud5
Note : If u observer the values in 3rd column of the trg table, instead of directly mapping the taskid we need to generate a separate sequence for every teacher.
BottomLine : for each and every task created by each teacher there should be a unique record along with the count of students in "STUDENTS" table
Can anyone help me out in designing the Data Flow task for this Functionality.
Hi there. I'm trying to learn SSIS, please, help me. I have 2 questions:
1) There are 2 databases on 2 different servers. I need to get data from Table1(database1) and put it to Table2(database2). But I have to insert rows, which ID is not exists in Table2. How Can I do necessary filter?
2) In the OLE DB DataSource Component I have used SQL Command(it's simplified):
declare @TmpTable TABLE (WorkCode int not null);
INSERT INTO @TmpTable (WorkCode) select WorkCode from Table1
SELECT WorkCode FROM @TmpTable
SSIS Package works without any exception. But there is no any inserted record in destination table. If I try similar query without temporary table - it works good. Why?
I have SQL Server 2005 Express edition on my machine. On an SSIS project in BIDS, when i drag a "Data Flow Task" to the package it returns the following error:
The designer could not be initialized. (Microsoft.DataTransformationServices.Design)
Does this has anything to do with the fact that i don't have SSIS installed on my machine?
I thought that SSIS was only needed (on my machine) for the runtime, just to run the packages. To create and edit the pachages i need to install SSIS on my machine too? this doesn't makes sense, maybe it's another problem.
I am having problems with the Data Flow task. It does not even show up in the list of items to drop into the SSIS project.
If I go to the Data Flow tab and hit create, I get the follow error. I have tried repairing and reinstalling, but nothing seems to clear up the error. Without rebuilding my machine, is there anyone who knows how to get the Data Flow Task reinstalled properly?
Thanks
Wayne
TITLE: Microsoft Visual Studio------------------------------Registration information about the Data Flow task could not be retrieved. Confirm that this task is installed properly on the computer. ------------------------------ADDITIONAL INFORMATION:TaskHost "{C3BF9DC1-4715-4694-936F-D3CFDA9E42C5}"' is not installed correctly on this computer. (Microsoft.DataTransformationServices.Design)For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%u00ae+Visual+Studio%u00ae+2005&ProdVer=8.0.50727.762&EvtSrc=Microsoft.DataTransformationServices.Design.SR&EvtID=TaskHostNotInstalled&LinkId=20476------------------------------BUTTONS:OK------------------------------
I have a simple data flow task setup... 2 ADO.NET connection managers, each referencing a DSN pointed to a Unidata database. 2 DataReader sources, each using a single ADO.NET connection managers, running a simple SELECT statement from a table. I have a Union All transform setup to merge the data and write to a OLE DB Destination (SQL05 database)
When I run the package, each source will validate, but only one will execute. The other source will do nothing. The data source will be colored yellow, and will just sit there. The package will just sit, almost like it is waiting for input.
This behavior is not consistent, however. It varies which data source will hang, pretty much 50-50. About 25% of the time, both sources will execute, and all rows will be written to the destination.
I have a Windows XP X64 machine with SQL 2005 Developer and VS 2005 Team Edition for Architects on it. For the most part it appears that all normal VS and SQL functions are working properly with the exception of SSIS. If I open the developer studio and drag a Data Flow Task onto the design surface I get the message below. I have tried doing an unistall and reinstall of Integration Services as well as a repair on VS 2005 with no success. I've searched the web and newsgroups and can't find any mention of the problem I'm having. Any help greatly appreciated.
I wanna know if we can have more than one "OLEDB Destination" within a Data Flow Task, I want to use the same data flow and write to two different tables in a database with some changes. If we cannot do this within the same data flow what is the best way to do this.
I was working all day making changes to my 3MB package. I was adding a large number of transforms that were copied-and-pasted from elsewhere in the same data flow task.
All was going well. I even took the time to have SSIS lay out the task again (1/2 hour). Suddenly I started receiving some strange errors:
After the layout, I noticed two stray components 'way off in the upper right corner. I found that one of them had a duplicate name to a component which had been added hours ago. Even after deleting it, I got "duplicate name" errors.
I copied three components in one selection, and when I tried to paste them, got the error "can't initialize component on paste". I tried them one at a time, but got the same error.
I got errors about COM failures due to marshalling to another thread I then exited Visual Studio and started it again. To my great surprise, the data flow task I was working on was still there, but was completely empty.
Comparing what I'm left with to my last version in source control, I find that the entire pipeline element is missing from the DTS: ObjectData element!
I'm developing a real love/hate relationship with SSIS. It varies from one day to the next. Guess what kind of day this is!
HI, I HAVE A NEW PROBLEM...HOPE SOMEONE KNOWS WHAT THE $#%#$ IS HAPPENING. HERE IT´S THE THING: I´M USING A DATA FLOW TASK TO READ DATA FROM AN ORACLE SERVER AND TRANSFER THE INFO TO MY SQL 2005 SERVER, THE SOURCE IS AVAILABLE AND THE CONNECTION IS WORKING, I'M USING A DATA READER SOURCE TO CONNECT AND EXTRACT. I´VE PUT THIS DTS IN A JOB AND IT WAS OK, IT HAD BEEN RUNNING OK FOR ALMOST A MONTH BUT SUDDENLY HIS MORNING IT FAILED WITH THE FOLLOWING ERROR:
Error: 0xC0047038 at Extrae SAZ_GranoO_New, DTS.Pipeline: The PrimeOutput method on component "SAZ_GranoONew" (421) returned error code 0x80004003. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.
Error: 0xC0047021 at Extrae SAZ_GranoO_New, DTS.Pipeline: Thread "SourceThread0" has exited with error code 0xC0047038.
Information: 0x402090DF at Extrae SAZ_GranoO_New, OLE DB Destination [1022]: The final commit for the data insertion has started.
Information: 0x402090E0 at Extrae SAZ_GranoO_New, OLE DB Destination [1022]: The final commit for the data insertion has ended.
Information: 0x40043008 at Extrae SAZ_GranoO_New, DTS.Pipeline: Post Execute phase is beginning.
Information: 0x40043009 at Extrae SAZ_GranoO_New, DTS.Pipeline: Cleanup phase is beginning.
Information: 0x4004300B at Extrae SAZ_GranoO_New, DTS.Pipeline: "component "OLE DB Destination" (1022)" wrote 19522 rows.
Task failed: Extrae SAZ_GranoO_New
Warning: 0x80019002 at SAZSIE_CargaVentasSeguros: The Execution method succeeded, but the number of errors raised (3) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
I'm creating an SSIS package, a Data Flow Task. I have used OLEDB Source connected to a SQL Server Destination. Now in my OLEDB Source, I have this SQL statement
SELECT FirstName, LastName, Age FROM Employees WHERE (Age > 10) AND (Age < 95)
But what I want is to have the last name and first name concatenated and in proper case(capitalize first letter of the firstname and surname). I also want to TRIM or remove the blank spaces of the field in my SQL statement. How I be able to do this?
I tried using proper(), trim() and ucase() like in MSAccess but no success.
I have a fairly simple data flow task that loads data from one table (OLE DB Source) into another table (OLE DB Destination). The data type for one of the pairs of columns is nVarChar(120) and it contains version information that looks like a decimal. When I run the export, the destination has a trailing zero added after the decimal point as if it were a numeric column which invalidates our comparisons (string 1.0 is not the same as string 1.00). There is no cast or convert done to this column, it is a straight copy. Any ideas what could be causing this or how to fix?
I have a data flow task which has around 5 data flows (like the 2nd diagram shown here). These 5 simple flows with just a row count transformation in between. Now, I want to fail the entire task immediately even if one of the data flows failed. Right now if one flow fails the remaining flows fails after a long time, not immediately. How can I make it fails immediately.
The other I would like to do is Can I place these 5 data flows in a transaction, so that if one data flow fails, others data flows also roll backs? ( I assume its not possible)
I am passing some /SET commands on the command line when I execute packages I created in SSIS and have run from the SQL Server Job manager. When I put these same /SET commands on the command line arguments section of the project properties page I would expect they would be passed into the executed package when it is run thru BIDS. But the variables still have their defined values when the packages executes.
Is there a trick to getting command line arguments to work in the debugger for SSIS/BIDS??
Maybe I'm missing something, but I can't find how to run multiple tasks in sequence while in Visual Studio debug mode. In DTS design mode I grew accustomed to right-clicking tasks one-at-a time, but in SSIS I find the additional step of having to exit Debugging mode after every task gets old after a while.
There must be a way to start execution at a certain task and have the package continue all the way to some other specified task. It would also be nice to have every task in a Group execute in sequence and stop (even if connections continue beyond the group). I could even settle for repeatedly clicking the Continue button in Debug mode, but it's always grayed out when the current task is finished!