Dynamic Loading Of A File
Jun 8, 2005I've been told by Kirk that it is possible to load a file whose metadata is
View 15 RepliesI've been told by Kirk that it is possible to load a file whose metadata is
View 15 RepliesI have number of csv files in a folder, all of them with same columns, need to be merged into one table and imported to sql server.
-The first row of the csv file is a header.
-The csv files are updated everyday
-The destination table is replace by new table with new info in the csv.
-The new csv files can be created and old csv files may no longer exist, but we are only interested in information contain in current csv files in the folder.
-I need SSIS to combine all the csv files in the folder and merge into one table.
-Other issue is that the field names may change in csv, so can the SSIS package recognize the change in field name and made necessary change in destination table as well.
Any insight on this issues will be greatly appreciated?
Here's what I want to do -
Dynamically load a flat file from a dynamic source table-
The source table metadata is known via the SYSOBJECTS and SYSCOLUMNS tables- I can pull the column names, type and lengths from these tables based on the table name. (my goal is pretty simple- pull data from a table in our database, and save it down to a flat file)
Would this be enough to dynamically create the destination flat file? If so, how do I do it?
Thanks
-rob
I am trying to create an ssis package with dynamic csv file as output. and out format contains query output.
sample file name:
Unique identifier + query output + systemdate();
The expression is looking like this.
@[User::FilePath] + @[User::FileName] + ".CSV"
-- user filepath is a variable from ssis package. File name is the output from SQL query. using script task i have assigned the values to @[User::FileName] .
When I debugged the script task the value getting properly but same variable am using for Flafile destination. but its not working.
Hi!
From the dll I've installed in SQL Server I load a dll via reflection.assembly.load from the GAC . I know the dll can load the dll when I test it outside SQL Server but when I run it via a store procedure from within the SQL Server I keep getting a System.IO.FileNotFoundException.
How does this work? Isn't all dll in the GAC loaded by SQL Server? Is this impossible to achieve?
Thanks in advance
Richard Hallgren
I am having an issue with loading dynamic generated assemblies in my CLR SQL stored procedure. I have tried turning on the "Generate serialization assembly: ON" and have read numerous articles regarding work around but have been very unsuccessful in getting this to work.
The problem lies in when the code calls
XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyClass));
where MyClass is a generated schema class using XSD. Since it wouldn't auto generate the serializer assembly, what I did instead was created a new class library project with only that line of code and provided the class definition within that same class without any of the attributes from the XSD. I am still getting an error on that same line. So what I did next was do the manual sgen and made sure it generated with the same signed assembly snk file. Manually loaded into sql server and still got the same error. Any ideas why this is?
Code Snippet
public partial class TestClass
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void testThis()
{
MyOwnClass myClass = new MyOwnClass();
//Serialize message to xml
XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyOwnClass));
}
}
public class MyOwnClass
{
private string hi;
public MyOwnClass()
{
hi = "1";
}
public string Hi
{
get
{
return hi;
}
}
}
I want to use DTS to load from a flat file. But I can't be sure whenthe flat file will arrive. I would like the job to check every 10minutes or so for a couple of hours. If the file is present, then loadthe file and rename it so that it doesn't get overwritten. Anysuggestions?TIA,amorphous999
View 3 Replies View RelatedI'm trying to take a CSV flat file as a source, and load it into a SQL database.
The problem is the CSV file contains name data that is separated by commas as well.
For example a record could be:
12334, "Male", 154, "Doe, John", 09071980
so it should be split into 5 columns, but the flat file editor in SSIS reads the comma within quoted "Doe, John" and splits that into columns as well, so the SQL insert fails as there are 6 columns instead of 5. How do I get it to treat data within quotes as a single field?
Thanks!
I got the following error while loading a file using bcp
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
The DSN is created and the required driver is present. Any help is appriciated
I am familiar with the MySQL Load Data command to load an external ascii file into a database table, but am having trouble finding a T-Sql command that is equivalent without creating an executable...any help would be appreciated...
View 1 Replies View Related
While loading the flat file into sql server2005 using SSIS , i am getting error like:
[Source - 20070801PensionPayments_dat [1]] Error: The "output column "Status" (246)" failed because truncation occurred, and the truncation
row disposition on "output column "Status" (246)" specifies failure on truncation. A truncation error occurred on the specified object of
the specified component.
In the EM import wizard, i can see last column [][](blank space similar box type). because of that i unable to load data into table. The delimiter is fixed width.
Please help me - Thanks in Advance.
Hi All,
We did the development of SSIS packges on 32 bit machine. We have few excel files which is loaded using SSIS.
Now the same was deployed to anothe rmachine(64 bit). This 64-bit machine does not have Microsoft office installed.
And all packages(which loads excel files) failed. Hence can someone answer my following questions:-
1) In order to load excel files using SSIS, is it necessary that Microsoft excel software should be installed on that machine?
2) If answer to above is yes, Can Microsoft excel viewer be used instead of Microsoft office(excel)?
Thanks
Sid
Hi,
We have configured package to load configurations from XML file.
But whenever we try to run the package, it throws below warning message
and continues to download the configuration file and finally ending up in low memory exception
The package is attempting to configure from the XML file "E:CybageDeploymentMSCERTMSCERT_MainPackgeConfig.dtsConfig".
I have made sure the file exists at the above location.
Please let me know if anyone have any solution on this.
Regards,
sachin
I am so new to SQL Server 2005 and just studying. Saying that...
We use SQL Server 2005 Express edition. Some one sent me a file (info.mdb) and asked me to load the data in this file in to a table called Products and also asked me to load in another table (ProdCat) where id = 'X05'.
So being not knowing anyting regarding data loading etc, how should I do this and proceed? The .mdb means its a Access database file? If that is the case, I dont have Access in my machine and what should I do?
SQL Server 2000
Help! Surely this has happened to others before me. A new customer wants to send updates in a fixed-width txt file in which master and detail rows alternate.
How do you do this?
Do you:
1) Painfully muck around with 100,000 rows in the .txt file first--split it into 2 files, one for master records and one for detail records and then process? If so, what do you use? I'd probably hack at it with a VB Script module in a DTS package.
or
2) Is there a way to feed it into 2 tables where rows starting with x go to one table and rows starting with y go to another?
The plan was to use a fast and dirty DTS package to shove this stuff into a table (probably 2 but we might just toss the stuff we don't need and put in in one) but I'd like some advice on how to proceed.
Thanks for any suggestions!
Hi All,
I am facing a peculier problem. Problem definition goes like this,
I have one staging DB in which all the tables resides in Primary file and one production DB in which tables resides in 2 secondary files.
Now when iam trying to load the data from the table A in staging which is on primary file to the table A1 in production DB which in secondary file, all the data are going to error log instead of table A1.
Can you please tell me, where am i going wrong.
Regards,
Chetan
Hello,
I deployed an SSIS project to my SQL Server. The project I deployed contained two packages. One called the other. After deployment I notice that both packages are indeed in the SQL Server. However when I try to run it I get the error below. This error happens during the "Execute Package Task" and the path the error is pointing at is my local development path, not the one it was deployed to. Is there any way to fix the path? And how can I get it to deploy both packages so it knows where they are when I run it from the server?
Error 0x80070003 while loading package file "C:VS ProjectsTestingRun Codes to DBRun Codes to DBSofAid_DBRefresh.dtsx". The system cannot find the path specified.
Thank You
Jaime
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.
Need to know how I can get the dynamic filename created in the FlatFile destination for insert into a package audit table?
Scenario: Have created a package that successfully outputs Dynamiclly named flat files { Format: C:Test’Comms_File_’ + ‘User::FileNumber’+’_’+Date +’.txt’
E.g.: Comms_File_1_20150724.txt, Comms_File_2_20150724.txt etc} using Foreach Loop Container :
* Enumerator Set to: “Foreach ADO Enumerator” with the ADO object source variable selected to identify how many total loop iterations there are i.e. Let’s say 4 thus 4 files to be created
*Variable Mappings : added the User::FileNumber – indicates which file number current loop iteration is i.e. 1,2,3,4
For the DataFlow task have a OLDBSource and a FlatFile Destination where Flat File ConnectionString is set up as:
@[User::Output_Path] + "Comms_File"+ @[User:: FileNumber] +"_" + replace((DT_WSTR, 10) (DT_DBDATE) GETDATE(),"-","")+ ".txt"
All this successfully creates these 4 files:
Comms_File_1_20150724.txt, Comms_File_2_20150724.txt, Comms_File_3_20150724.txt, Comms_File_4_20150724.txt
Now the QUESTION is how do I get these filenames as I need to insert them into a DB Audittable. The audit table looks like this:
CREATE TABLE dbo.MMMAudit
(
AuditID INT IDENTITY(1, 1) NOT NULL,
PackageName VARCHAR(100) NULL,
FileName VARCHAR(100) NULL,
LoadTime DATETIME NULL,
NumberofRecords INT NULL
)
To save the Filename & how many records in each file in our Audit Table, am using an Execute SQL Task and configuring it as this:
Execute SQL Task
Parameter mapping - Mapped the User Variable (RecordsInserted) and System Variable( PackageName) to Insert statement as shown below
SQLStatement: INSERT INTO [dbo].[MMMAudit] (
PackageName,NumerofRecords,LoadTime)
(?,?.GETDATE)
Again this all works terrific & populates the dbo.MMMAudit table as shown below BUT I also need to insert the respsctive file name – How do I do that?
AuditID PackageName FileName NumberOfRecords
1 MMM NULL 12
2 MMM NULL 23
3 MMM NULL 14
4 MMM NULL 1
I am having an issue with the File System Task.
I was wondering if there is a way to 'Move File' with the File System Task inside of a For Each Loop container but to dynamically set the Destination path variable.
Currently, this is what I have:
FileDestinationPath variable - set to C:TestFiles
FileSourcePath variable - set to C:TestFiles
FileNameAndLocation variable - set to blank
For Each Loop Container Iterates through a folder C:TestFiles that has .txt files in it with dates in the file name. Ex: Test_09142006.txt. Sets the file path (fully qualified) to the Variable Mapping FileNameAndLocation.
Script Task (within For Each Loop, first step) Sets the FileDestinationPath to the correct dated folder within C:TestFiles. For example, if the text files I want to move are for the 14th of September, it takes FileDestinationPath and appends the date folder to the end of it. The text files have a date in the file name (test_09142006.txt) and I am picking this apart (from FileNameAndLocation in the For Each Loop) to get the folder date. (dts.Variables(User::FileDestinationPath?).Value = dts.Variables(User::FileDestinationPath?).Value & ? Month & _? & Day & _? & Year & ?) which gives me C:TestFiles 9_14_2006?.
File System Task (within For Each Loop, second step) This is where the action is supposed to occur. I want it to take the FileDestinationPath and move the FileNameAndLocation file (from the For Loop) into this folder for each run.
Now as for my problem. I want this package to run everyday but it has to set the FileDestinationPath variable dynamically according to that days date. Basically, how do I get this to work since I cant hard code the destination path variable from the start? I have the DestinationVariable on the File System Task set to the FileDestinationPath variable, after the script task builds it. However, using FileNameAndLocation as the SourceVariable on my File System Task tells me that the Variable FileNameAndLocation? is used as a source or destination and is empty.?
Let me know if I need to clarify further...I may be missing something very simple. Any help would be greatly appreciated!
I can run this example from SQL Book Online from sql query analyzer. I can build the TestDB database.
BACKUP DATABASE Northwind
TO DISK = 'c:Northwind.bak'
RESTORE FILELISTONLY
FROM DISK = 'c:Northwind.bak'
RESTORE DATABASE TestDB
FROM DISK = 'c:Northwind.bak'
WITH MOVE 'Northwind' TO 'c: est estdb.mdf',
MOVE 'Northwind_log' TO 'c: est estdb.ldf'
GO
But... When I build stored procedure and call it through VB6. I've got the gray database symbol along with message TestDB (Loading/Suspecting)
Why I cannot run these commands through VB6
Designing a solution for loading data into SQL destination from a single 5/10 GB flat file? If yes, what kind of performance measures you have taken while designing the solution ?
View 3 Replies View RelatedHi,
I have a csv file with 1.8 million records. Few of the text columns in each row has commas(,) in them and hence those columns are enclosed by " ".
An example record would look like:
123,abc,"abc, city, state",222,...
Now, the 3rd column should be read as: abc, city, state
But, it is reading ("abc) into 3rd column, and (city) into 4th column and (state") into 4th column resulting in data errors.
Is there a way to specify that fields are optionally enclosed by " as we do in Oracle?
Thanks,
Anil
Hi.I need to give my customer an sql file that they can run in query analyzer.All the stuff they need to run is in a set of existing files.I'd like to just tell them to load this file (this is oracle syntax):@file1.sql@file2.sql@file3.sqlis there some way of calling these files (that are in the same dir) from amaster sql file?ThanksJeff Kish
View 2 Replies View RelatedI tried to load a fixed width flat file with around 300,000 rows. However, only the first 8xxxx rows were loaded to the destineation table and the rest row were loading blank records. There was no error message showing during package execution. I've tried to split the file in half and the result was the same. So it wasn't the data file problem.
Would there be any buffering issue I need to cater for inside the package? Thanks!
I have just loaded SQL Server 2005 SP1 and it is playing havoc with any SSIS packages that use the File System Task.
I am using the FST to copy a file to a directory after it has been loaded. This worked fine prior to SQ1 but now I am getting the following error if there are one or more files already in the target directory:
[File System Task] Error: An error occurred with the following error message: "The directory is not empty. ".
If I remove all files from the directory it works fine.
Has anyone come across this problem and got a workaround for this? Will it involve me writing a FSO script task???
Is this 'feature' going to be rectified in SP2?
I am trying to load 14+ million rows from a text file into local Sql Server. I tried using Sql Server destination because it seemed to be faster, but after about 5 million rows it would always fail. See various errors below which I received while trying different variations of FirstRow/LastRow, Timeout, Table lock etc. After spending two days trying to get it to work, I switched to OLE DB Destination and it worked fine. I would like to get the Sql Server Destination working because it seems much faster, but the error messages aren't much help. Any ideas on how to fix?
Also, when I wanted to try just loading a small sample by specifying first row/last row, it would get to the upper limit and then picked up speed and looked like it kept on reading rows of the source file until it failed. I expected it to just reach the limit I set and then stop processing.
[SS_DST tlkpDNBGlobal [41234]] Error: An OLE DB error has occurred. Error code: 0x80040E14. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Reading from DTS buffer timed out.".
--------------------------------
[SS_DST tlkpDNBGlobal [41234]] Error: The attempt to send a row to SQL Server failed with error code 0x80004005.
[DTS.Pipeline] Error: The ProcessInput method on component "SS_DST tlkpDNBGlobal" (41234) failed with error code 0xC02020C7. The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running.
...
[FF_SRC DNBGlobal [6899]] Error: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020.
[DTS.Pipeline] Error: The PrimeOutput method on component "FF_SRC DNBGlobal" (6899) returned error code 0xC02020C4. 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 "WorkThread1" received a shutdown signal and is terminating. The user requested a shutdown, or an error in another thread is causing the pipeline to shutdown.
-------
After first row/last row (from 1 to 1000000) limit is reached:
[SS_DST tlkpDNBGlobal [41234]] Error: An OLE DB error has occurred. Error code: 0x80040E14. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Reading from DTS buffer timed out.".
---------------
When trying to do a MaximumCommit = 1000000. Runs up to 1000000 OK then slows down and then error.
[SS_DST tlkpDNBGlobal [41234]] Error: Unable to prepare the SSIS bulk insert for data insertion.
[DTS.Pipeline] Error: The PrimeOutput method on component "FF_SRC DNBGlobal" (6899) returned error code 0xC02020C4. 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.
----
When attempting all in a single batch:
[OLE_DST tlkpDNBGlobal [57133]] Error: An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "The transaction log for database 'tempdb' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Could not allocate space for object 'dbo.SORT temporary run storage: 156362715561984' in database 'tempdb' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.".
Hi All,
I have SSIS package which loads excel data in SQL server. Now when I execute the package by double clicking it(GUI Utility for Dtexec) or by running it in SSIS Editor it works great.
However if I run it using the command line dtexec.exe then following error arises. Note that machine on which I am executing does not have Microsoft Office installed and is 64 bit.
Error: 2007-08-03 16:53:27.42
Code: 0xC0202009
Source: PkgExtract Connection manager "SRC_Connection"
Description: 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-08-03 16:53:27.42
Code: 0xC020801C
Source: Data Flow Task - Extract Data Excel Source [1860]
Description: The AcquireConnection method call to the connection manager "SRC_Connection" failed with error code 0xC0202009.
End Error
Error: 2007-08-03 16:53:27.43
Code: 0xC0047017
Source: Data Flow Task - Extract Data DTS.Pipeline
Description: component "Excel Source" (1860) failed validation and returned error code 0xC020801C.
End Error
Any pointers or help is greatly appreciated.
Thanks
Sid
Iam trying to load a RR Flat File(Ragged Right) into SQL Server DB Destination.
The file feeds the data into two tables and the logic looks like this..
If Position 30 = ''
Record Set goes into Table 1
Else
Record Set goes into Table 2
I have no clue where to start with my limited SSIS Exposure.. Any Ideas as to what i shud be starting with (Transformations)??
Thanks in Advance.
I have a load a zipped folder which is PGP encrypted into SQL table, How to unzip and load it into sql table using SSIS.
View 4 Replies View RelatedI am using framework 1.0 to do the above tasks. Since there is no fileupload function in .net 1.0, i will be using the html control tools (file field) to do the upload option.
i have totally no idea of how to start coding it...can anyone guide me through the steps???
thanks
Hi All,
I have a source files folder where the files generated everyday.
My goal is pick the latest file and copy this single file to another folder.
I used the Foreach loop container and got the latest file and stored the file name to a varible i.e. LatestFile
Then i want to use the File System Task to copy this to the destination.
On the beginning, I could not setup the Latestfile since I don't its name then, so when I setup the Source Connection property of the File system task, it is not allowed to leave the SourceVarible as blank!
Any suggestion?
Thanks
Micor
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.