Flat File Source - How To Configure An Appropriate Column Delimiter?
Feb 19, 2008
Good day everyone,
I have a package that reads data from a CSV file, transforms it and finally loads it in a destination DB table.
My current problem lies in the parsing of the input flat file. I shall illustrate it using a small example.
Source File:
P;Product-1;Short Description for product 1
P;Product-2;Short Description for product 2
Problem:
I configured the flat file connection manager to use semicolon as the column separator. But then I have received some sample flat files where I found that the semicolon might be sometimes used as content of a column data.
Possible Solutions:
I have thought about 3 different solution and I would like to get your feedback and recommendations about them.
Alternative 1:
Use a complex column delimiter, which wouldn't be used in the data.
Example:
P#~#Product-1#~#Short Description for product 1
P#~#Product-2#~#Short Description for product 2
Question 1:
- Is it possible to define such a customized column delimiter for the Flat File Connection Manager?
- If yes, how can I do this?
Alternative 2:
Use double quotes around the data, which the Flat File Source Adapter must somehow recognize and trim before pushing the data down the Data Flow.
Example:
"P";"Product-1";"Short Description for product 1"
"P";"Product-2";"Short Description for product 2"
Question 2:
- Is it possible to configure the Flat File Source Adapter to work as described?
- If yes, how can I do this?
Alternative 3:
Use a Script Component and write the needed code for parsing the Flat File.
Question 3:
- Do you have further suggestions/ideas for solving this parsing problem?
Thanks in advance and my regards,
Samar
View 3 Replies
ADVERTISEMENT
Jun 20, 2006
I have a flat file that is row delimited by x00 x0D x0A. Any ideas on how to specify the row delimiter in the Columns section of the Flat File Connection Manager?
View 2 Replies
View Related
Jan 31, 2007
hi guys,
i am working on a project witch involves creating packages on-the-fly to import data from txt/csv/xls files according to some definitions on the database.
so far, i have been doing fine.
now we are planning the ASP.net page that enables the customer to define the input file format that will be imported to the system. we want it to have the same listBox as the FlatFileConnectionManager Editor has to define some properties, such as - column delimeiter.
the code to set the column delimiter looks like this:
SSISRunTime.IDTSConnectionManagerFlatFile90 myFilecn = null;
myFilecn = (SSISRunTime.IDTSConnectionManagerFlatFile90)package.Connections["InputFileConnection"].InnerObject;
DtsConvert.ToConnectionManager90(package.Connections["InputFileConnection"]);
SSISRunTime.IDTSConnectionManagerFlatFileColumn90 col
col = myFilecn.Columns.Add(); //.....
string colDelimiter ="|" ; // it actually gets the data from the database... but it is the same thing
col.ColumnDelimiter = colDelimiter;
when we deal with the simple characters- "," , ";" , "|" ... we have no problems with setting the delimiter. but how can i set the delimiter to Tab? or {CR} ? {LF}?
i tried to look at the dtsx- XML , and i see that the column delimiter that is defined when i choose Tab is: _x007C_, but when i try to do something like this:
col.ColumnDelimiter = "_x007C_" ;
it doesn't work. the same happens when I try "{t}" or "Tab".
how do i solve this problem, and enable the user to select Tab as a column delimiter?
Thanks!
View 4 Replies
View Related
Jul 31, 2007
Hi everyone,
I am using SSIS, and I got the folowing error, I am loading several CSV files in a OLE DB, Becasuse the file is finishing and the tak dont realize of the anormal termination, making an overflow.
So basically what i want is to control the anormal ending of the csv file.
please can anyone help me ???
I am getting the following error after replacing the '""' with '|'.
The replacng is done becasue some text sting contains "" wherein the DFT was throwing an error as " The column delimiter could not foun".
[Flat File Source [8885]] Error: The column data for column "CountryId" overflowed the disk I/O buffer.
[Flat File Source [8885]] Error: An error occurred while skipping data rows.
[DTS.Pipeline] Error: The PrimeOutput method on component "Flat File Source" (8885) returned error code 0xC0202091. 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.
[DTS.Pipeline] Error: Thread "SourceThread0" has exited with error code 0xC0047038.
[DTS.Pipeline] Error: Thread "WorkThread0" received a shutdown signal and is terminating. The user requested a shutdown, or an error in another thread is causing the pipeline to shutdown.
[DTS.Pipeline] Error: Thread "WorkThread0" has exited with error code 0xC0047039.
[DTS.Pipeline] Information: Post Execute phase is beginning.
apprecite for immediate response.
Thanks in advance,
Anand
View 1 Replies
View Related
Feb 13, 2007
Hi,
I am trying to create a program that transfers tables to flat files.
At this point in time, I have suceeded in created one that creates delimited files.
However, I am now trying to create fixed-width files as you can do with the SSIS designer, but programatically.
Is there a way to programatically determine the width of a column from the source table? I can not seem to find any kind of function or member that stores this information or allows me to retrieve it.
I know what I need to change in order to set a width for a column, but I just don't know how to find the width without just asking the user to provide one.
View 5 Replies
View Related
Feb 1, 2007
What is the best way to deal with a flat file source when you need to add a new column? This happens constantly in our Data Warehouse, another field gets added to one of the files to be imported, as users want more data items. When I originally set the file up in Connection Managers, I used Suggest File Types, and then many adjustments made to data types and lengths on the Advanced Tab because Suggest File Types goofs a lot even if you say to use 1000 rows. I have been using the Advanced Tab revisions to minimize the Derived Column entries. The file is importing nightly. Now I have new fields added to this file, and when I open the Connection Manager for the file, it does not recognize the new columns in the file unless I click Reset Fields. If I click Reset Fields, it wipes out all the Advanced Tab revisions! If I don't click Reset Fields, it doesn't seem to recognize that the new fields are in the file?
Is it a waste of time to make Advanced Tab type and length changes? Is it a better strategy to just use Suggest Types, and not change anything, and take whatever you get and set up more Derived Column entries? How did the designers intend for file changes to be handled?
Or is there an easy way to add new fields to this import that I am overlooking? I am finding it MUCH more laborious to set up or to modify a file load in SSIS than in DTS. In DTS, I just Edit the transformation, and add the field to the Source and Destination lists, and I'm good to go. My boss isn't understanding why a "better" version is taking so much more work!
thanks,
Holly
View 11 Replies
View Related
May 12, 2006
Hello All,
I have come across this issue with the Flat File Source when the delimiter is set to a comma.
"""KAILUA KONA,HI""","CA",
In the data snippet above and with the setting of using a comma as a column delimiter
and a " as the text qualifer.
the data will be parsed in this fashion:
"""KAILUA as a column:
HI""" as a column
CA as column
when it should be
"KAILUA,HI" as a column
CA as column.
Is there a way to let the Flat File Source to let it know not to parse the data in multiple quotes ?
Thank you
Eric Flores
View 5 Replies
View Related
Feb 1, 2006
Hi,
I'm trying to design this package where i take data from a source and need to transform it into a flatfile with some extra static information.
I use a SQL script like this (ex.):
SELECT '
BS0220131264202400000130001'+cast(wa.perf_applicant_number as nvarchar)+'000000000' + wa.perf_firstname + ' ' + wa.perf_lastname + CHAR(13)+
'BS0220131264202400000330001'+REPLICATE('0',(15-LEN(wa.perf_applicant_number)))+cast(wa.perf_applicant_number as nvarchar)+'000000000' + WAPD2.strvalue+ '
BS0520131264202410001130001'+REPLICATE('0',(15-LEN(wa.perf_applicant_number)))+cast(wa.perf_applicant_number as nvarchar)+'000000000 tekst der skal stå på kortet' as nvarchar
FROM dbo.WAIT_Applicant WA (nolock)
This makes the text (from one record) split up over several lines in the output.
I succeded with this in a SQL2000 DTS package and the flat txt-file looked liked I wan't it to. But now i tried doing it in 2005. And now it is not workin' anymore
In my Flat File Connection Manager Editor i chose {LF} as the row delimiter and the preview looks really nice. Like this:
BS0220131264202400000130001000000015826727000000000Søren Hesth
BS0220131264202400000330001000000015826727000000000adfasdf
BS0520131264202410001130001000000015827207000000000 tekst der skal stå på kortet
But in the file that is created it doesn't split up over several lines. Instead of a carriage return it puts a [black box] - a sign which counts as the carriage return.
I don't know if I have explained this well enough, but I hope that someone can help me. I've been trying for 3 days now.
View 4 Replies
View Related
May 2, 2007
I have a text file that loads just fine with DTS 2000, but in SSIS it does not seems to recognize the row delimiter. For example, most rows in the text file have 10 columns, but some have 8 columns. For those with 8 columns, the SSIS is adding the data from next row, not padding the columns with nulls. Please help...
Thanks in advance.
View 16 Replies
View Related
Apr 19, 2007
Hi all,
I am passing flat file source as a variable to Dtexec Utility. (like package.variables[User::varFileName].Value;"D:sourcedata.txt).
Destination table is having one more column.
I want to add custom value in that column at run time by parameter to Dtexec(User::varDate)
I dont know how to do it, please help me.
Madhukar
View 4 Replies
View Related
Jan 12, 2007
I'm having a problem using the Flat File Source while using the underlying .Net classes to execute SSIS Packages. The issue is that for some reason when I load a flat file it Empty's out columns randomly. Its happening in the Flat File Source Task. By random I mean that most of the times all the data gets loaded but sometimes it doesnt and it empty's out column data. Interestingly enough this is random and even the emptying out of columns isnt a complete empty, its more like a 90% emtpying. Now you'll ask that is the file different everytime and the answer is NO. Its the same file everytime. If I run the same file everytime for 10 times it would empty out various columns maybe 1 of those times. This doesnt seem to be a problem while working with dtexec or the Package Executor utility. Need Help!!
View 9 Replies
View Related
Dec 8, 2006
When I use SQL 2000 DTS Export to create a fixed length flat file, the data rows are delimited by carriage return-line. Which means that when I open the flat file in a text editor like UltraEdit or WordPad, the data rows are broken out nicely (row ends at the max row length position and new row starts at position 0).
But when I use SSIS to create the file, the whole file is displayed as one line in WordPad. The data rows don't end at the max row lenght position in ultraEdit neither. From Flat File Connection Manager's Preview page, I can see the data rows are displayed properly.
Now I wonder if the flat file destination is a true fixed length file.
View 3 Replies
View Related
Sep 21, 2006
Hi Folks,
I would like to write my table to a delimited file but I seem to have no choice but to use comma as the delimiter. Is there any way I can choose the delimiter ?
Thanks.
Sid
View 3 Replies
View Related
Jan 16, 2007
I have a gazillion text files, each with dozens of records. The fields are pipe-delimited, the end of each record is marked by ASCII char code 28.
example:
05|11900307|1|CO|Gervais|Neil|NG8880|F|540|0|0|0|T|0|||F|||F 05|11900307|2|AO|MARSHALL|BRAD|BM7843|F|510|60|0|0|T|0|||F|||F
The " " is the Chr(28). The line above should parse into 2 rows...
**** time passes ****
An interesting discovery - if I paste that " " directly into the row delimiter box, without quotes or brackets, I get two records!
So I found at least one answer.
Is there another?
TIA
View 1 Replies
View Related
Feb 28, 2008
Hi,
I am trying to figure out how to override the column delimiter from a script task for a flat file connection.
Before outputing the data into a file, I have a variable which contains the delimiter to be used... but as it seems that this property cannot be changed through an expression, I assume it has to be done throught code...
However, the connectionmanager object doesnt seem to have the delimiter as an available property.
Any help would be appreciated
View 16 Replies
View Related
Nov 10, 2006
Hi all,
I m using SSIS and i am transfering the data from Flat File Source to the OLE DB destination File. The source file contain some corrupt data which i am transfering to the other Flat file destination file.
Debugging is succesful but i am not getting any error output in the Flat file destination file.
i had done exactly which is written in the msdn tutorial of SSIS.
Plz tell me why i am not getting the error output in the destination flat file?
thanx
View 1 Replies
View Related
Dec 27, 2006
Hi,
I have a situation where a tab limited text file is used to populate a sql server table.
The tab limited text file comes from a third party vendor. There are fixed number of columns we need to export to the sql server table. However the third party may add colums in the text file. Whenenver the text file has an added column (which we dont need to import) the build fails since the flat file connection manager does not create the metadata for it again. The problem goes away where I press the button "Reset Columns" since it builds the metadata then. Since we need to build the tables everyday we cannot automate it using SSIS because the metadata does not change automatically. Is there a way out in SSIS?
View 5 Replies
View Related
May 11, 2006
I am transferring data from an OLEDB source to a Flat File Destination and I want the column width for all of the output columns to 30 (max width amongst the columns selected), but that is not refected in the Fixed Width Flat File that got created. The outputcolumnwidth seems to be the same as the inputcolumnwidth. Is there any other setting that I am possibly missing or is this a possible defect?
Any inputs will be appreciated.
M.Shah
View 3 Replies
View Related
Mar 8, 2004
Hello Everyone,
Hope someone will be able to help me out here.
I have a text file exported from my DTS package and it requires an '!' as a custom column delimiter.
Does anyone have any idea how I can use the '!' mark instead of the Tab or Vertical Bar as my Column Delimiter?
Would appreciate any suggestions.
Thanks,
Kay
View 3 Replies
View Related
Mar 28, 2006
Hi,
we have one requirement to run the package daily basis.
The package should run at specific time on that day.
we are using windows schedular for that.
we will have one new flatfile everyday.
Is there any process to attach this file to flat file source dynamically?
The requirement is,
The flat file should be able to read the new flatfile everyday.
we have no option change it manually, the flatfile source should have to take the file automatically at that time.
So that it can take that flatfile and load it into database table.
View 1 Replies
View Related
Feb 14, 2007
I am wondering how easy is to check for file locks and have our SSIS Package to wait until file has been release by the process which is using it.
Also, same question when we're writing to a Flat File (or Flat File Destination).
Thanks,
View 3 Replies
View Related
Aug 15, 2007
Hello Ereryone,
I have Flat File as my source. Before i tried to load the data in to ORACLE Destination thru SCD component the error was with ole db.
any ways i try to load the data in Access DB but I€™m getting different error in same component (OLE DB) After SCD Component. can any one help me out in this.
thank you
View 1 Replies
View Related
Mar 6, 2006
Hi all
I have some problems with the "Flat File Source" ...
I am trying to load a textfile, but IS allways cuts the rows ...
When I look at the preview while designing, the row is complete,
so I am wondering what IS is doing ...
Thanks for any comments
Best regards
Frank Uray
Here is what I am trying to load (one row from the file):
WPBX1 1.2 19330065002695435000 001200526000 000020002002-11-13-11.17.55.2220262006-03-03-05.50.44.322629002000010001AG2006-03-03-05.50.44.322629WIS030EPF033200602173410567000101 271275 2006030220060303200603032006030320060303 200603032006030320060303 200603032006030320060303200603031 0.000 200.000A UWCE 1 24617 10844890000000000 0.000000 0.000 0.000 0 149.500 149.500 149.500 00100010 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00 1.000000000000000E+00 1.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+0000 0000000001CV ÊÊ 00 1.150 200.000 0001-01-01-00.00.00.00000000120052600071200180K 712 71550 230.000 230.000 230.000 0.000 230.0000010 C 100.000000 2006-03-03-05.50.44.3226291567 230.000 230.000 230.000 0.000 230.0000010?C 100.000000 2006-03-03-05.50.44.3226291568 230.000 230.000 230.000 0.000 230.0000010?C 100.000000 2006-03-03-05.50.44.3226291585 230.000 230.000 230.000 0.000 230.0000010?C 100.000000 2006-03-03-05.50.44.3226291590 -80.500 -80.500 -80.500 0.000 -80.5000010?C 35.000000 2006-03-03-05.50.44.3226291640 -80.500 -80.500 -80.500 0.000 -80.5000010 C 35.000000 2006-03-03-05.50.44.3226291830 149.499 149.499 149.499 0.000 149.4990010?C 65.000000 2006-03-03-05.50.44.322629
On SQL Server I get only this:
WPBX1 1.2 19330065002695435000 001200526000 000020002002-11-13-11.17.55.2220262006-03-03-05.50.44.322629002000010001AG2006-03-03-05.50.44.322629WIS030EPF033200602173410567000101 271275 2006030220060303200603032006030320060303 200603032006030320060303 200603032006030320060303200603031 0.000 200.000A UWCE 1 24617 10844890000000000 0.000000 0.000 0.000 0 149.500 149.500 149.500 00100010 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00 1.000000000000000E+00 1.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+0000 0000000001CV
View 7 Replies
View Related
Sep 24, 2006
I've been working 4 days non stop on this project, lost a complete weekend on it and I totally had it.
Please have a look at this "simple" question:
I have a for each loop that checks for csv files in a folder. The path of the file(s) is stored in a variable varFileName.
So far so good. But then I start with a data flow task and inside that data flow task I need to access one of those csv files at the time whenever it loops.
So my best guess is use a flat file source because that's the only task I see in the list that fits my question.
But the thing is, you set up a connection to a....yes right, a flat source connection and there you have to select a flat file.
But no, I don't want to select ONE file, I need to access them all as the loop goes through all files.
I'm sure this is something easy but I don't see it anymore.
I'm off taking a nap, need sleep
Could someone please point me to a direction?
Many thanks!
Worf
View 5 Replies
View Related
May 3, 2007
I have a SSIS package loading a lot of CSV file, which first line is the column head. Some file are ordered differently. However, package still try to load the file use predefined column order (it seems it doesn't check the head of each file see if it matchs the predefined column order).
Any way to force the package the check each file's head? or I had to manually check it using VB.Net script?
View 1 Replies
View Related
Dec 1, 2007
hi all
I have a table which has the paths where the source files need to be collected.
So I have a set of files which I need to collect. So I need to iterate through the result set which retrieves the paths
where the files can be found and set this dynamically to connection string of flat file connection manager.
Can anyone please let me know how to do this.
Can you be a little elaborate as to how we can do this because I am really new to SSIS.
Please help me as I am new to SSIS.
Thanks
Sai
View 1 Replies
View Related
Mar 7, 2007
I am trying to make a SSIS package that will loop trough all files in a directory and load information from them.
I can do this with Raw File Sources since they allow me to use a variable name as the file path, but I cant seem to do the same with Flat File Sources. Is there a way to change the connection to a Flat File Source on each iteration of a loop? Actually, if this is possible with all types of file sources (like excel files) I would love to know about it too.
I was thinking about renaming the file through a script task but that does not seem like the most elegant solution so decided to see if some one here knows of a more proper way before I go that direction.
View 1 Replies
View Related
Aug 29, 2006
Is there away to use wild card in the file name for the flat file data source?
Like //servername/directory/*.txt
View 5 Replies
View Related
May 17, 2006
I want to read the following file using the Flat File Source flow:
10000 Router
20000 Hub
10000 Switch
30000 Server
40000 Harddisk
Spaces are used between the numbers (e.g. 10000) and the following text (e.g. Router). Each line is temrinated by a {CR}{LF} pair. I would normally think of this as a "fixed width" file.
But in the Flat File connection manager, if I use format "Fixed width", the preview shows a row width of 1 character wide (the first row contains the number "1"; the next row contains "0", and so on for the remaining 3 rows.in the first line) Not what I had in mind. How do I setup SSIS to handle this file in intended maner?
TIA,
Barker
P.S. I never had any trouble with this type of file under Sql 2000 DTS. Also, have you noticed the crappy-looking "bitmap" displayed when one wants to click and define columns for a fixed-width file?
View 4 Replies
View Related
Jun 7, 2007
Hi,
I'm using an OLEDBSource to select some data and then putting to in a Flat File destination.
However, when I look at the data in the OLEDBSource, they´re like this:
1. id
2. name
3. address
...but in the flatfile it comes out in the wrong order.
How can I fix this?
Thank you so much.
View 1 Replies
View Related
Jan 17, 2007
I have a weird thing happening.
I have an .csv file. When I try to load it into a table, I can do it easily in DTS 2000. But when I am trying to do it in SSIS 2005 with exactly the same settings (like Text qualifier, row delimiter etc.), I am getting an error: "The last row in the sampled data is incomplete. The column or the row delimiter may be missing or the text is qualified incorrectly." I looked at the file and it looks complete to me.
What could be the problem ?
P.S. DTS 2000 is on 32-bit Windows, and SSIS 2005 is on 64-bit Windows 2003. Could that we a problem ?
View 19 Replies
View Related
Feb 8, 2008
i am importing a file using the Flat File Data Flow Source, it works fine but seems to miss data records every so often (not entire rows, just records inside the rows). The file has 149 columns and usually has around 15,000 to 20,000 rows.
For example, this is a sample of the input:
AccountNum, CancelDate, CancelReason
123~2/2/08~ADC
345~2/1/08~CCC
789~2/5/08~CRC
After the Flat File Source imports the file I get back:
AccountNum, CancelDate, CancelReason
123~2/2/08~ADC
345~2/1/08~
789~2/5/08~CRC
has anyone ever seen this or heard of this happening. It is usually the same column that misses records and this only happens when it runs from a job (in debug mode it always works fine).
View 6 Replies
View Related
Feb 9, 2012
I have a simple SSIS package -> It reads a local text file which has 10 rows of data ( id, name, telephone # ) and puts it into a table.
It uses the "SSIS Flat File source" to read and a "SQL Command" to insert into the table. I can see that it reads line by line and puts each line into one row in my table.
Now, my production data is over 5 GiG of mainframe data and it seems their data is arranged in some hierarchical form.. so the position or arrangement of data in that file is important.
I pulled the data using my package and as far as I can see , my SSIS package pulled one line at a time ( from the flat file) and pushed it into my table. For each row, I also created an identity column in my table to be able to identify the positional arrangement of the hierarchical data and then use relational mappings to suit our business needs.
In all of this, my assumption is -
"SSIS reads one line at a time, inserts to my table and goes down to the next line .
It does NOT read a snapshot of rows from the flat file so as to write them into the table using internal ordering methods based on that particular snapshot "
My question is .. is my assumption correct ?
View 1 Replies
View Related