It just occurs to me that it might not be a bad idea to post again the problems in SSIS that I found back in the beta cycle which do not seem to have been fixed, to increase the chance that someone will notice them.
(During the beta cycle, I spent hours trying to get bugs posted into the beta bug system, but the beta web bug site had so many problems that I could never get it to work, unfortunately, so I fell back to just posting my bugs and hoping some developers would notice them. Kirk had a thread for bugs and RFEs at one point, where I posted some of the important ones.)
Here is another fairly bad one:
The dialog that pops up to show fields in the dataflow which have been orphaned, after some fields have been removed earlier in the dataflow, and which allows the user to rename them or delete them, has a very bad display problem:
It shows the box names before the field names, so if the box names are descriptive, the field names are far off-screeen, and it is very difficult to get them to display on screen.
So the user starts off with all the items in the drop-down being indistinguishable, as they all start with the box names, and the important part of the strings are far off-screen at the right -- the actual field names.
I don't recall if I actually ever posted this one; I may not have.
Hello Trying to figure out a clever solution for splitting multivalued columns out into n-columns. For that I've build a custom component in SSIS using
ms-help://MS.VSCC.v80/MS.VSIPCC.v80/MS.SQLSVR.v9.en/dtsref9/html/4dc0f631-8fd6-4007-b573-ca67f58ca068.htm as an example.
I need to be able to add columns to the OutputCollection in designtime, but the designer returns an error: Error at Data Flow Task [Uppercase [5910]]: The component "Uppercase" (5910) does not allow setting output column datatype properties.
How do I enable the designer to accept designtime changes in the columncollection?
I created a dataflow that transferred about 1 million records from a SQL database on one server to a differend SQL database on the same server. The processing took about 30 minutes. I used the Fast Load option.
I then created a "Execute SQL Task" and wrote a "SELECT * INTO TABLE" and this processing took about 30 - 60 seconds.
Can someone tell me why creating a Data Flow Tak would take so much longer or give differences between the two options above? Can someone give some pointers on how to make a Data Flow task more efficient?
I am trying to recode a SQL2K DDQ into an SSIS Dataflow. I have no issue recoding it in SSIS except I am not sure that I am doing it correct way.
My DDQ has source,destination, update/delete/insert statements and few lookups. I have used activex script for the transformation because I have atleasst 10 If conditions. For every "if condition" the destination columns are popuated with different lookups/source columns and constant values.
Now When I start doing it with SSIS I have to use at least 10 Conditional split. and then at least one lookup,one OLEDBCommand and one OLEDB Destination for each of them . that brings my count of DF objects to 30-40
It makes my data flow to complex with two many objects. Earleir I could do whole of this in one sngle DDQ. It makes me think if I am doing it the correct way. should I be using Activex Script Task to these kind of activity.
I need to create a ssis package. I want to import the data from a flat file to a table.
Lets say, the table has 5 columns -- col1, col2, col3, col4 , col5.(Assume that all columns can be NULLABLE) The datafile contains the data related to only three columns say col1, col2, col3. So when I use dataflow task to import the data from the file to the table, I will only get three columns, col1, col2, col3. Columns col4, col5 will be NULL. However, I want to populate columns col4, col5 with some values which are stored in the variable.
When I drop a new component onto the design surface, it appears with dotted lines around it, as it is selected.
But, the F2 key (the hotkey for rename) does not work.
I have to click on some other component, and then back on the new component, and then the F2 key works.
I remember reporting this bug back in the beta cycle, but it is still present even in the release -- I actually think Ã?'m using the SP1 version of 2005, but see version info below to be sure:
Remote terminal services broke my copy buffer again, as is so often does, so pasting in the version info failed -- falling back to manual typing -- SSIS 9.00.2047.00.
Okay I 'm not sure what to do next (S2K5 64 bit SP2) Migrated across simple DTS which picks data up from MSaccess and ships it into a database table!
I switched the 64bit run time to false and happy days it shipped the information across.
I then decided I wanted to deploy the package so I created a deployconfig.xml with all properties ticked against my two connections in connection manager. ( the MSacessdb and the S2k5 database )
after that I switched the deployment util to true.
then I fired the deployment manifest
Then created a job to schedule it fails with
Executed as user: SEA-SRV-00009SYSTEM. ...00.3042.00 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 4:09:33 PM Error: 2007-09-10 16:09:38.70 Code: 0xC0202009 Source: Trackitnew Connection manager "TRACKIT" Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040154. An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered". End Error Error: 2007-09-10 16:09:38.72 Code: 0xC020801C Source: Data Flow Task Task Collection [22] Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "TRACKIT" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. End Error Error: 2007-09-10 16:09:38.72 Code: ... The package execution fa... The step failed.
SO firstly I changed the surface area config to enable xp_cmdshell
created another job but ran TSQL xp_cmdshell 'dtexec /FILE "D:DTSTrackit.dtsx" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING EW'
I ran the job and it says succesful but when I do a query on the table there is no data could anyone please point me in the right direction? Thanks
I have developed a big SSIS package to extract data from flat-files ( + 200 Dataflows ).
The situation is the following, inside de SSIS package, there are a lot of validations before extracting & loading the flat-files, i'm running this validations in paralell, so that when a file arrives, it enters the "validation process" and start extracting the file.
When i run the SSIS package from BIDS it works the way i have concepted it... but when i run the ssis in the server, the tables that are loaded through the process are only "available" when the SSIS PACKAGE ends, it is imperative that trough the process, when a table receives new data, it becomes ready, and don't just be available when the SSIS package finishes...
I have attached the an lousing .jpeg.
It is importart for the tables to be available, so the stored procedures(OUTSIDE SSIS PACKAGE) that are dependent of some tables, start working before the SSIS package Ends.
My apologies if this is a very basic question, but I am having a very difficult time finding the answer.
My very, very simple dataflow task is PAINSTAKINGLY slow. (It took over an hour to transwer @300,000 records). I'm doing no transformations whatsoever. In fact, the only reason I'm using the Data Flow component here is for its error tracking capabilities.
Here's a brief description-
1) The source is an OleDB datasource object that uses an OLEDB connection to access a SQL Server 2000 database.
2) The output from the source is dumped directly (no data transformations) into an OLEDB Destination Object (uses an OLEDB connection to access a View on a SQL Server 2005 database). Individual row errors are pushed to a seperate logging table.
Based on the advice of an article I read, I removed the "OleDB Destination" object and used the records from the OLEDB source as the input to a RowCount Transformation. This still took a SIGNIFICANT amount of time. I'm guessing that my problem is with using an OleDB Source component???? That seems really strange though... wouldn't it be optimized? What are my workaround options?
I am using a parameterized select query as displayed below to fetch values from source.
SELECT A.Account_GUID, M.Merchant_GUID, H.Household_GUID, B.BankAU_GUID, SR.SalesRep_GUID, E.Entitlement_GUID, I.Income_GUID, Exp.Expense_GUID, SP.Sales_Product_GUID, P.Product_cd, SUM(S.Sales) AS Monthly_gross_MC_VI_amt, SUM(S.Sales) - SUM(S.[Returns]) AS Monthly_net_MC_VI_amt, SUM(S.SaleTxns) AS Monthly_gross_MC_VI_tran_cnt, SUM(S.SaleTxns) - SUM(S.ReturnTxns) AS Monthly_net_MC_VI_tran_cnt FROM Account AS A LEFT OUTER JOIN dbKAIExtract.dbo.tblSales_STG AS S ON A.Account_No = S.AccountNo And S.BucketNo = ? And S.ProductCode in ('01','02') LEFT OUTER JOIN Merchant AS M ON A.Account_No = M.Account_no INNER JOIN SalesRep AS SR ON SR.Rep_SSN = isnull(A.rep_SSN,'000000000') INNER JOIN Household AS H ON A.Account_No = H.Account_no LEFT OUTER JOIN BankAU AS B ON A.Assigned_AU = B.AU_No LEFT OUTER JOIN SalesProduct AS SP ON A.Account_No = SP.Account_no And SP.Reporting_Interval_Id = ? LEFT OUTER JOIN Entitlement AS E ON E.Account_no = A.Account_No AND SP.Product_Cd = E.Entitlement_Card_Type LEFT OUTER JOIN Income AS I ON I.Account_no = A.Account_No And I.Reporting_Interval_Id = ? LEFT OUTER JOIN Expense AS Exp ON Exp.Account_no = A.Account_No And EXP.Reporting_Interval_Id = ? LEFT OUTER JOIN Product AS P ON P.Product_cd = SP.Product_cd WHERE (A.current_ind = 1) AND (SR.current_ind = 1) GROUP BY A.Account_GUID, M.Merchant_GUID, H.Household_GUID, B.BankAU_GUID, SR.SalesRep_GUID, E.Entitlement_GUID, I.Income_GUID, Exp.Expense_GUID, SP.Sales_Product_GUID, P.Product_cd
My problem is, I am not able to assign any variables to parameterized query. Can any body guide how to assign respective variables to the parameterized query. I have the above query as a part of OLE DB Source step within Data flow task.
I have a problem whit loading XML-files into SQL server.
I iterate over the XML-files with the "for each file" component and use the XML source within a Data flow task. This works great until the file count got bigger. After say 1000 files the XML source returns error 0x8007000E. I think this means out of memory. Does anyone have an idea how to solv this. The load must be able to handle up to 5000 files in one batch.
I need to execute a SQL query, inside a dataflow (not in controlFlow) and need the records returned to continue the dataflow... In my case I cant use lookup and OLE DB COmmand and nothing else...
I need to execute a query and need the records for dataflow... with OLE DB command I cant see the fields returned... :-(
How can I do it? Using a script? Can I use a Script Component? That receive 2 parameters for input and give me the fields returned from query as output?
When I try to drag and drop the Multicast dataflow item onto the Data Flow design surface I get the error below. I have uninstalled and reinstalled SQL Server 2005 to no avail. By experimentation I have discovered that the following Data Flow Transformations raise this error as well:
Any thoughts, comments, or pointers? I would really like this to work!
Thanks for your help,
D ;-)
ERROR MESSAGE BEGINS HERE:
===================================
The component could not be added to the Data Flow task. Please verify that this component is properly installed. (Microsoft Visual Studio)
===================================
The data flow object "DTSTransform.Multicast.1" 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.42&EvtSrc=Microsoft.DataTransformationServices.Design.SR&EvtID=PipelineObjectNotInstalled&LinkId=20476
------------------------------ Program Location:
at Microsoft.DataTransformationServices.Design.DtsBasePackageDesigner.GetPipelineInfo(String creationName, IServiceProvider serviceProvider) at Microsoft.DataTransformationServices.Design.DesignUtils.GetNewPipelineComponentObjectName(IDTSComponentMetaDataCollection90 parentCollection, String clsid, IDTSComponentMetaData90 componentMetadata, PipelineComponentInfo& pipelineComponentInfo) at Microsoft.DataTransformationServices.Design.PipelineTaskDesigner.AddNewComponent(String clsid, Boolean throwOnError)
New to SSIS and dts. Stumbling along on this one, really looking for resources and help.
I have a flat file, i defined through connection manager
and (for now) a fixed destination excel file I defined in connection manager.
My dataflow, is pretty simple, mapping two fields to each other an amount field and a phone field in a flat file source and excel destinatinon.
the amount column is formated as a number in the excel, and a currency in the connection and both input output properies.
A few questions,
1. why do cells on the excel show up with that green wedge on the upper left? appears to be a formating issue.
2. in the flat file, my amount field does not have the decimal, what would be the best way to apply that? it's should be implied.
3.Everytime I test the SSIS package, it keeps appending to the excel (it actually does not even work right on the second run). What's the best way to have it write to a fresh file? have an ssis script task copy the file from an empty template?
4. Id like to remove the last row? what's the best way to do that?
I have developed a big SSIS package to extract data from flat-files ( + 200 Dataflows ).
The situation is the following, inside de SSIS package, there are a lot of validations before extracting & loading the flat-files, i'm running this validations in paralell, so that when a file arrives, it enters the "validation process" and start extracting the file.
When i run the SSIS package from BIDS it works the way i have concepted it... but when i run the ssis in the server, the tables that are loaded through the process are only "available" when the SSIS PACKAGE ends, it is imperative that trough the process, when a table receives new data, it becomes ready, and don't just be available when the SSIS package finishes...
I have attached the an lousing .jpeg.
It is importart for the tables to be available, so the stored procedures(OUTSIDE SSIS PACKAGE) that are dependent of some tables, start working before the SSIS package Ends.
I was wondering if anyone had some ideas on the following issue I have with an SSIS package.
Have a very simple database which I want to pump information from a MSaccess db.
task one truncate table task two load info from MSaccess db
under connection manager connection one to the database in question connection two Native OLE DB Microsoft Jet 4.0 OLE DB provider ( this goes to the MSaccess) test connection is fine.
dataflow task OLE DB Source ( MSaccess connection can also preview table) OLE DB Destination ( database table )
upon execute of the SSIS
task one is fine task two fails
when you read the execution results
[OLE DB Source [22]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "TRACKIT" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
[DTS.Pipeline] Error: component "OLE DB Source" (22) failed validation and returned error code 0xC020801C.
[DTS.Pipeline] Error: One or more component failed validation.
[Connection manager "TRACKIT"] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040154. An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered".
I am using a Data Flow task which copies data from an Excel Source to a SQL Database Table Destination. From 15 columns I require only 10 columns to be imported to the DB Table. So I have mapped those colums. In SQL DB there is a colum called say X, whose value should be the "Remedy" for all the columns which are imported. Is there any task that can achieve it.
I'm trying to find if there is a combination of dataflow transformations that will produce the following result
SELECT
period,
project,
task,
employee = CASE
when empid in (SELECT DISTINCT empid FROM EmpTable) then empid
else 'Deleted Employee'
end
FROM ProjectTable
I know I can create a dataflow task with this query as a data source and then send it to a destination, but I was wondering if that is the best way to do it or if there was a better way to do this using the data transformations available in SSIS.
I want to caputure all error records with rowid and error code and Error description in SSIS 2012.We want to do this in Dataflow level... I am using error out option(Redirect Row). But it is not giving detailed information of the error records.
I have problem to extract data from DB2 table using SSIS dataflow task with OLEDB source selecting the data access mode with command. Here is the scenario.(Note:If I select the data access mode as a table then it works fine.)
If I use the data access mode as SQL Command then it is not working. i.e. the flow stays yellow in controlflow nothing happens in dataflow and I noticed the SQL dumper and proc completes. I couldn't find any log to verify the issue including the package execution results.Any of your thoughts will help me to resolve this issue.
I have an SSIS job that has been running overnight sucessfully has for the last two nights failed with the message:
A fatal error occurred while reading the input stream from the network. The session will be terminated. Error: 4014, Severity: 20, State: 2.
The message is logged in both the SQL log and the application event log.
As this job step involves copying from one database to another on the current server, it is hard to account for the error. Had the error occurred in an earlier job step when database is restored to the current server from a share on another server, the error would be understandable.
The SQL server is SQL2005 SP2 running on Windows 2003 Sp1. I have been unable to locate any changes in the time frame that would account for this error.
Hi, I am using SQL Server2005 for SSIS. I want to change the source connection dynamicaly evertime. Let me clear, I have to extract some column from excel to MS-Access. I am using Data Flow Task and able to successfully complete the job. But problem is that, whenever a new file comes , i must have to reconfigure my Excel Source. All the time column in file are same, so no need to worry about mapping but how can my package select a file automatically. I have a directory, suppose "C:dpak". I should able to pick the filename and sheet name from this directory every time when my package will execute.
I am developing SSIS dataflow component. Extended user interface is based on class IDtsComponentUI. Connection properties are created in both standart and my extended editor (Extended user interface). To set up designtime connection I use standart and my extended editor.
A main PipelineComponent component have two runtime connection:
to set up IDTSRuntimeConnection90[0] connection using connections from a current package. After this operation the RuntimeConnectionCollection[0] is not null within the method PipelineComponent.AcquireConnections((object transaction)). ! But during next launching of Extended user interface the RuntimeConnectionCollection[0] is null within the method PipelineComponent.AcquireConnections((object transaction)). Why do I lose the connection? And why the connections which set up in my Advanced editor do not save in standart editor?
I am trying to create a SSIS package that will create a csv of a dataset for daily events in the database. However there will be days that there was no activity and thus an empty dataset. The package still runs fine but I want to stop the package if the dataset is empty.
FLOW:
DATA FLOW task: get daily data and put in CSV file
FTP TASK: upload the file to FTP server
MAIL/Copy file task: Move the file and then send a confirmation mail on task completion status.
Pretty simple and it all works great, I do have a few complexities in there. What I would like to add and I am at a loss is at the beginning, if the OLE DB Task resultset is empty then move to Mail Task otherwise process normally. I have tried conditional split, derived columns, the only thing I haven't tried in Script task and am not sure about that yet.
I have implemented a custom source component that can be used as the data source in the Data Flow task.
I have also created a custom UI for this component by using the IDtsComponentUI .
But my component does not have the capability of setting the custom properties via the DTS Variables using the Expression Builder.
I have looked around for samples on how to do this, but I can only find samples of how to do this for custom Control Tasks, i.e. IDtsTaskUI.
My question is, How can implement the Expression Builder in my custom Source component + custom Source UI. Or do you know of any samples which I can look at.
When i use tablename or viewname variable in datasource component and data determination component , how can i manage the output columns and the input columns? Yes,i can use default value init the columns ,but when variable value changed,error occurs.