Import Human-Readable Text File Into SQL Server 2000
Jul 20, 2005
Hello,
I am receiving a text file that is produced from a mainframe that is
out of my control. I am attempting to find a (hopefully clean) way to
import it into a SQL Server database in an automated fashion. I am
not really concerned about how many tables it requires or what the
schema looks like as long as the data remains related and ends up in
its respective fields (I will probably use scratch tables for this).
The data is given to me in a format that is meant to be printed out
and read by human eyes (in a text file). The format looks something
like this:
Begin File:
-------------------------------------------------------------------------------
1234 1234 1234 1234 XYZ Company 01/01/2003
.......More stuff related to XYZ company for a couple of lines .......
.......(this stuff can easily be parsed by position).......
MCARD VISA AMEX DISC
-------------------------------------------------------------------------------
TOTAL 11111.11 4444.44 5555.55 30.01
TRANS FEE .20 .20 .15 .15
TRANS AMOUNT 2222.22 888.89 833.33 4.50
DISC .0165 .0165 .0365 .0355
-------------------------------------------------------------------------------
ANOTHER HEADER
............More stuff related to XYZ Company................
End File:
Well, this isn't the exact format, but just an example. The point is
that all of the data in each column is related and should end up in
the same record which is related to the parent record of XYZ Company
(or all in a single record in a single table if that is the closest I
can get).
Also, the rows are not always present. For example, if TRANS FEE
doesn't apply to anything in the row, then the entire row will
collapse and TRANS AMOUNT would be the next line after TOTAL.
I was looking at the bcp utility and dts, but dts doesn't seem to have
the performance capabilities (or reliability for that matter) I am
looking for. Bcp seems like it might work if there is some advanced
formatting commands that I can't find in the documentation - Anyone?
The best I can come up with is to use a high level language such as C#
or VB.NET to parse the text file into another text file that is comma
delimited, and then use the bcp utility (or bulk insert) to import it
into SQL Server where I can then use TSQL to manipulate it how I want.
I am trying to eliminate the high level language parse and just go
straight from file to database. Does anybody know an easier route?
OK Here is what I am trying to do... In one of my processes I need to take a field IE CREATE_DATE and change that from an EPOCH (number of seconds since Jan 1, 1970) to a human readable date... IE a 04/02/2008 08:23:36 AM and stuff... Now I do know how to use the dateadd... However all my times are coming up as GMT I need them to be EST/EDT... How can I script this to automagically subject 5 or 4 from the hour depending on if we are in daylight savings. This has been plagueing me for the longest time.
Hi there,When importing a text file using SQL Server, how do I specify the pathto a file on the same remote server that SQL Server is running on? Itried //c:/filename but that doesn't seem to work.Also, once the import is working, how do I write a DTS package tofirst delete all rows in a table, then repopulate with the text file,or is it easier to drop the table, re-create it and then repopulate?The table will contain approximately 30,000 records.thanks for your help,K
hi guys i need to import text file to sql table in sql server 2005 ...using query how do i import text file to sql table ....................... i need query i dont want go Import/export options
I have a text file I am trying to import into SQL Server using OLEDB connection.
It's a fixed field text file, ragged right format. One of my columns maps to a numeric column in the DB. In some spots in the file, it is blank, in others there is actual numeric data.
I can't get it to import. If I set the text file column to numeric, I get an error "That value could not be converted because of a potential loss of data." If I set the text file column to string, I get a similar error from the OLE DB provider, "Invalid character value for cast specification"
I have tried telling it to retain nulls in the data flow and the other way as well. Can someone tell me what I am doing wrong?
Hi all, I got a unicode file source with this fields: -DT_WSTR (100) originally is DT_STR(100) -DT_WSTR (100) originally is DT_STR(100) -DT_NTEXT -DT_WSTR (20) originally is DT_DBTIMESTAMP -DT_WSTR (5) originally is DT_BOOLEAN
I export a Query result to a File (see above) ...as unicode TXT destination.
OK, now I must to re-import into another DB and here is my difficult...'cause the DT_NTEXT is HTML code and I got always this error: [Flat File Source [1050]] Error: The column delimiter for column "scheda" was not found. Scheda field is the DT_NTEXT.
Into connection manager area I modify the advanced tab for the set-up of my fields setting all to: Unicode string [DT_WSTR] with a variable of the len, but Try also to define everyone to the rigth type of the SQL destination like:
In every type of action I see no message alert and all seem to be good, but when I try to execute got always same error... So hope someone can help me... ----------- here first line of my UNICODE TXT source file ---------- "codven" "manufacturer" "scheda" "last_modified" "modificata" "CDGI2120" "Altri" "<datasheet><section ncellmax="1" id="1"><row order="1"><cell><![CDATA[Combat possiede mitragliatrici per intraprendere battaglie testa a ~testa del genere "spara o sei finito" in mezzo a territori ~butterati di crateri su carri armati del 23esimo secolo.~Caratteristiche:~* Cinque modalita' di gioco~* Tre tipi di carri armati~* Partita singola o in multiplayer~* Grafica in 2D, 3D]]></cell></row></section></datasheet>" "2007-12-11 13:02:26.290000000" "1" "CDGI2586" "Disney Interactive" "<datasheet><section ncellmax="1" id="1"><row order="1"><cell><![CDATA[Entra con Tigro ed i suoi amici nel meraviglioso Bosco dei 100 Acri aiutalo a cercare il miele nella natura incantata di questo fantastico mondo! ~~Il giocatore vestirÓ i panni di Tigro, il simpatico e buffo amico di Winnie The Pooh, il quale dovrÓ raccogliere quanto pi¨ miele possibile, per rendere la festa di Winnie qualcosa di veramente speciale!!!]]></cell></row></section></datasheet>" "2007-12-11 13:02:26.290000000" "1"
I have an .xlsx file where I need to import the data into a table. If there is not a way to do this, is there a way to import either a tab del file or different type of .csv file into the database?
Do not want to use the SSIS or import feature from SQL2008 as I tried to save the steps and running it wont work either.
what is the best way to import fixed length text file to sql server using SSIS?
I was trying to using text file source and ole db destination..but since the text file has no columns and have different length per column and per line( it show only one column becasue it all concatnated), I can not map it to destination column..
How can I import it?
Here is the example of text file ( fixed with row delimeter)that i need to import to different columns...
I have a text file with a bunch of zip codes: 99546,"AK","Adak",162.70,55.20,.0099551,"AK","Akiachak",161.39,60.89,.0099552,"AK","Akiak",161.19,60.89,.0099553,"AK","Akutan",165.78,54.14,.00................... I want to import this in Sql Server Express. Is it possible to do this using Management Studio Express? If not, does anyone know a script that would import the data?
I have a table that contains the following two columns:BITS (image(16))BIT_LENGTH (int(4))When I look at the table, I see "OLE Object" in the BITS column. Whatsyntax should I use in a SELECT statement to convert the binary imageinfo contained in "BITS" into simple text that I can read? What roledoes the BIT_LENGTH field play?
Hi all,I have a file with an extension of .sdf. I "believe" it is a text fileof some sort but I am uncertain. The source agency hasn't returned anyof my calls so I'm wondering if anyone is familiar with this extension?I'd like to import the file into my database - when I use DTS and chosea text format, regardless of what delimiter I choose, the format isstill really ugly. when I pull it up in a huge text editor, it is hardfor me to tell what it is there.I saw in one of my searches that it could be a comma delimited (it'snot) .. could be a unisys file? I know it's not much information to goon - but where should I start in trying to get this into my databasewithout knowing the format? Any suggestions would be greatlyappreciated.Thanks!Bethany*** Sent via Developersdex http://www.developersdex.com ***Don't just participate in USENET...get rewarded for it!
I am trying to import an Excel file - when I pick the file I get the message "Could not open file for reading. Close any other application that may be locking the file." I have verified that the file is not open - I have even rebooted the machine - still the same message - what am I doing different? Please advise. Thanks
Hi All, I am trying to import data via DTS from a CSV file. I have the "empty" tables already created with proper column names. Now, I have a subset data of each of these tables, which I am trying to import. I am facing problem in that, there is a datatype conflict between the source (CSV file) and destination (table already in the DB). All the data in the CSV file appears to be of DBTYPE_WSTR, where as in the table it is different (some are DBTYPE_WSTR, some are DBTYPE_DATE, and so on). Is there a way that I can import data successfully? This has become a work stoppage issue now. I had to actually go for this approach of creating the empty tables first and then importing data because, the backup file was very very large and could not be copied to our domain. Please help me out in this.
I must import some exemplary file to database (MS Srrver 2000) ofcourseusing procedure Transact SQL.This file must:1.Read the xml file2. Create table3. Import this date from xml file to my databasePs. I create procedure who File xml imports to base, but unfortunately sheonly schedule when earlier create a table or table is created.So I need (Ithink) create such mini parser in language transact SQL.Does someone have some ideas?For every help Thanks==== example file xml ===========================================<root><Cust><IDosoby>1</IDosoby><Imie>Lukasz</Imie><Nazwisko>Przypadek</Nazwisko></Cust><Cust><IDosoby>2</IDosoby><Imie>Dariusz </Imie><Nazwisko>Mroz</Nazwisko></Cust><Cust><IDosoby>3</IDosoby><Imie>Tomasz</Imie><Nazwisko>Kolo</Nazwisko></Cust></root>================================================== =========--Luk
Can anyone please help me on how to export data from SQL server 2000 to text file using C#. I could use bcp command to directly import data, but there are some changes need to be made to some codes from other tables in database and the data to be downloaded is also very huge. probably 10 million records.
While importing into sql server 2000 from a text file i am getting an error message like not enough disk space available to perform this operation but there is enough space (around 18gb). Please advice why this is happenning as my work is stuck
I have a small project on that involves importing a series of csv files held within an ftp directory into our Datawarehouse. Every day a series of csv files will be added to the directory. These will be named something like:
Audit1.csv,Audit2.csv etc.
I would like to automate this process as this can involve up to 400 files at a time. The proecedure would need to identify a valid file, import it into the database, delete the file and then move onto the next one.
Does anyone know of a way to achieve this? I was thinking along the lines of using a cursor and bcp but I'm not sure how to identify these files to the database i.e. how do i make it step through the directory and process the files?
In a DTS package I have a text file import object, a data pump, and a SQL object. The text file import object has been set up to splice a 500 character wide file into 20 columns. The data pump task does a copy column for all the columns into the appropriate table. What I need to do is have a way of changing the file name I specify in the text import object. I have 12 months worth of data in seperate files (DBF0199.TXT, DBF0299.TXT, DBF0399.TXT, etc..) which all use the same format. Is there a way to change the text import objects file name inside the package using an active script task or something?
I'm trying to import a fixed field text file into SQL Server using DTS but everytime I go past 3640 characters, I am not able to add, delete or move column breaks after that. Is anyone else experiencing this problem and know of a work around. Any help would be appreciated. Thanks!
Hi All, I'm having a problem in importing an Excel file into SQL server 2000.Here is the scenario with my data. One of the column has got the mixed data which is putting null's in the SQL server table in some rows.I found in the MSFT Technet that it is a bug in SQL server 7.0/2000.The workaround for it ( according to MSFT ) is to get the data into text file and import into SQL server. Now the question is , my data contains some currency fields and numeric fields in addition to the char and date fields. When I'm importing the table using DTS wizard , it is failing. I'm trying to use conversion functions like cdate and clng etc . Still the DTS is failing. What I noticed is when I try to import into a table with data type varchar for all columns, it is working fine.But the data is of no use. I would appreciate if any one can help me out in solving this problem. Thanks, Sammy.
Quick advice question. I import lots of text files -- many with 50 plus data columns. Few come with a table layout other than perhaps the first row having a set of column names.
When I go to pull them into SQL server the columns default to varchar 8000. Is anyone aware of a tool (as a part of SQL Server or otherwise) that can scan a column of data and recommend a data type and size.
I have created a DTS that imports a text file to by data table. I geterrors when ever I run this since there are fields in the table thatare numeric. I understand that I need to create an activeX script toimport those fields. DOes anyone have any guidance?
Does anyone know if it's possible to use the wizard or DTS Designer toaccept a source file with the following simplified format:<field1label>: <record1field1value><field2label>: <record1field2value>- - - - - - -<fieldNlabel>: <record1fieldNvalue><field1label>: <record2field1value><field2label>: <record2field2value>etc.i.e. each input record is delimited by {LF}{LF}, and each column by {LF}. Orwill it be necessary to write a Perl script (say) to convert it first into a..csv file?Thanks,Dave--************************************************** **********************Dave Stone e-mail: Join Bytes!Computing Services Telephone: +44 131-650-3314University of Edinburgh Internal ext: 503314Main Library, George Square FAX: 0131-650-3308Edinburgh EH8 9LJ************************************************** **********************
Something I find myself wanting to do frequently is the traditional foreach loop looping through a directory of files and importing (which works great in SSIS) - Only I don't want to import data I have already imported.
In a previous job I used Perl for thing like this and the structure would be as follows:
For Each File:
1. Get filename and timestamp
2. Query db table with list of already imported filenames and timestamp. If Filename not in the table or is in table with older date return 1 to import or if file already imported return 0
3. Based on the result of step 2 either import or skip to next file.
Any recommendations how to do something similar in SSIS? I run stuck when I try to get the timestamp of the file and I also can't figure out how to do the conditional inside the foreach container... I am also open to other ideas on how to only import files I have not already imported.
Hi i'm new to DTS and need to be able to import a text file into a table each day.
The main problem I have is the file is datestamped so the name of the file changes each day.
Today it would be called file20070419.txt tomorrow it would be file20070420.txt. When I select a text file as a source I have to pick a valid file ??? how can I get round this ???