how to insert data from table to view using ssis 2008 R2? - ssis

While importing data i am getting error corresponding view not available in the db. But i checked in the DB that view is available . I tried manually insert into view that time its working.
Any setting to change for this?
While data importing from table to view via SSIS . I 'm getting following error "Invalid object name [Feed].[VwPharmaClaim]." This already exists. I traced the query in the profiler Quotes surrounded with the object name as ("[Feed]"."[VwPharmaClaim]").Without the quotes its working.
While I'm inserting data in 2008 version I am getting following error
Msg 208, Level 16, State 1, Line 1
Invalid object name '[Feed].[VwPharmaClaim]'
I traced the insert query in profiler
exec sp_executesql N'INSERT INTO "[Feed]"."[VwPharmaClaim]" ("PharmaKey","member_id","MemberRefID","claim_id","ndc","days_supply","refill_number","fill_dt","paid_dt","prescriber_id","allowed_amt","paid_amt","Member_amt","quantity","Import_Id","age") VALUES (#P1,#P2,#P3,#P4,#P5,#P6,#P7,#P8,#P9,#P10,#P11,#P12,#P13,#P14,#P15,#P16)',N'#P1 bigint,#P2 varchar(8000),#P3 numeric(18),#P4 varchar(8000),#P5 varchar(8000),#P6 numeric(10),#P7 int,#P8 datetime,#P9 datetime,#P10 varchar(8000),#P11 money,#P12 money,#P13 money,#P14 float,#P15 numeric(18),#P16 int',1,'000000000052',52,'085565501321 ','00472030115',5,0,'2008-06-04 00:00:00','2008-06-08 00:00:00','BO5586396 ',$10.0000,$0.0000,$10.0000,15,7,5368
OUTPUT
Msg 208, Level 16, State 1, Line 1
Invalid object name '[Feed].[VwPharmaClaim]'.
When I remove the double quotes it’s working fine
exec sp_executesql N'INSERT INTO [Feed].[VwPharmaClaim] ("PharmaKey","member_id","MemberRefID","claim_id","ndc","days_supply","refill_number","fill_dt","paid_dt","prescriber_id","allowed_amt","paid_amt","Member_amt","quantity","Import_Id","age") VALUES (#P1,#P2,#P3,#P4,#P5,#P6,#P7,#P8,#P9,#P10,#P11,#P12,#P13,#P14,#P15,#P16)',N'#P1 bigint,#P2 varchar(8000),#P3 numeric(18),#P4 varchar(8000),#P5 varchar(8000),#P6 numeric(10),#P7 int,#P8 datetime,#P9 datetime,#P10 varchar(8000),#P11 money,#P12 money,#P13 money,#P14 float,#P15 numeric(18),#P16 int',1,'000000000052',52,'085565501321 ','00472030115',5,0,'2008-06-04 00:00:00','2008-06-08 00:00:00','BO5586396 ',$10.0000,$0.0000,$10.0000,15,7,5368
OUTPUT
(1 row(s) affected)
My package developed 2005 . I have converted this package to following version in 2008.
version 9.0.30729.4462.QFE
This My error while importing data from table to view
[OLE DB Destination [185]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E37 Description: "Invalid object name '[Feed].[VwPharmaClaim]'.".

By default in SQL Server 2008 you are not allowed to use double quotes to identify database objects.
Run
ALTER DATABASE <dbname> SET QUOTED_IDENTIFIER = ON
against your destination database and then try running
SELECT * FROM "Feed"."VwPharmaClaim"
Check out http://technet.microsoft.com/en-US/library/ms174393(v=sql.105).aspx for some more info.
When you say SSIS is generating these queries, what sort of task are you using to generate them? I've never seen it produce double quote identifiers before, just curious.

I experienced this with SSIS 2013 and trying to insert to an updatable view. This view uses an 'instead of' trigger to do the insert.
In order for it to work, I had to go into the advanced editor for the destination and on the component properties tab remove the square brackets from the OpenRowset, so [dbo].[myView] becomes dbo.myView. Also, the AccessMode needs to be plain OpenRowset; fastload does not work.

Related

Error trying to load data from Excel

I'm in SSIS and trying to populate a table in my database with results on a formatted Spreadsheet. I'm using the SQL command within the Excel source editor and bring through data
I can see that some values within the rates colunms are blank. The error im geeting is .
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Invalid character value for cast specification".
This there an connection?
This here works for me, so you can try somethin similar:
All column datatypes is of nvarchar(255) except sc which is a float(but you can change this to nvarchar if you wish)
Try to get this working first. If you then get data loaded, you can always change datatypes as you go further or make a new dataflow where you handle your datatypes.
Excel Sheet:
Package start:
Excel source Editor
Excel Source Columns
Destination connection and create new table
Destination mappings
SQL Table Result

SSIS Execute SQL Task error: Multiple-step OLE DB operation generated errors -- probably due to parameter mapping

I am working in SQL Server 2008 and BIDS (SSIS). I am trying to generate a "load ID" for when a package is executed and store that ID in a load history table (which then populates subsequent tables).
My basic SSIS control flow is the following:
Execute SQL Task, Data Flow Task
The load table is created via the following:
CREATE TABLE dbo.LoadHistory
(
LoadHistoryId int identity(1,1) NOT NULL PRIMARY KEY,
LoadDate datetime NOT NULL
);
The editor for the Execute SQL Task is as follows:
General:
ResultSet = None
ConnectionType = OLE DB
SQLStatement:
INSERT INTO dbo.LoadHistory (LoadDate) VALUES(#[System::StartTime]);
SELECT ? = SCOPE_IDENTITY()
Parameter Mapping:
Variable Name = User::LoadID
Direction = Output
Data Type = LONG
Parameter Name = 0
Parameter Size = -1
SSIS is throwing the following error:
[Execute SQL Task] Error: Executing the query "INSERT INTO dbo.LoadHistory
..." failed with the following error: "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
This error message doesn't really help me find the problem. My best guess is that it's due to the parameter mapping, but I don't see my mistake. Can anybody point out my problem and provide the fix?
I figured out my problem. System::StartTime needs to have DATE as its data type, not DBTIMESTAMP.
I was passing three parameters.
In the Parameter Name property I had:
0
1
3
Corrected it to:
0
1
2
It works now, no multiple-step operation generated errors message.

SSIS Multicast Issue: Weird behavior

I am working on Integration services and came across a weird bug.
My data flow consist of:
-> DESTINATION
SOURCE -> SCRIPT_COMPONENT -> MULTICAST /
\-> DESTINATION
This error always occurs but differs the columns that is being addressed:
Error: 0xC0202009 at *STAFF_MIGRATION*, *STAFF_BASE* [627]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E21.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E21 Description: "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.".
Error: 0xC020901C at *STAFF_MIGRATION*, *STAFF_BASE* [627]: There was an error with input column "*LAST_UPDATED_BY*" (651) on input "OLE DB Destination Input" (640). The column status returned was: "The status value given to the provider was not valid.".
The column LAST_UPDATED_BY differs to sometimes LAST_UPDATE_DATE
The weird behaviour is that this doesnt occur if I add Data Viewers along the path to the destination.
Any ideas?
EDIT: I am running on VS/BIDS 2008 SPI and SQL Server 2008 (RTM) x64 SP1.
EDIT: I am now running on SQL Server SP3 and still the behavior occurs.
I think my theory could be right. When I place a data viewer, it means it needs to build the data set for me to view prior to insertion. So the values for the columns must be built. I found a solution by making the destination a fast load table where bulk insertion is intended. That would mean it would have time to build the data and would not encounter the invalid value for columns.. It was just a wild guess but it worked

SSIS Execute SQL Task SQL Command Issue

I have the following insert statement in my execute sql task in SSIS:
INSERT INTO dbo.SSISLogTest
(NodeID, BusinessDate, StartDate, StopDate, StepName, RecordCount, Message, Status, UserID)
VALUES (?,?,?,?,?,?,?,?,?)
When I run it within the task providing parameters it executes fine and inserts a record in the table.
When I run the package, this step fails with the following error:
"[Execute SQL Task] Error: Executing the query "INSERT INTO
dbo.SSISLogTest
..." failed with the following error: "Parameter name is unrecognized.". Possible failure reasons: Problems with the
query, "ResultSet" property not set correctly, parameters not set
correctly, or connection not established correctly. "
Different connection providers require different syntax - all of the following must be set correctly:
The connection type (i.e. OLE DB, ADO...) Your choice, but aim to use the same throughout your application.
The number and specifics (Variable Name, Direction, Data Type, Parameter Name, Parameter Size) of parameters on the "Parameter Mapping" dialog.
The parameter syntax in the SQL query (i.e. your question marks.)
Please see an OLEDB example in the screenshots below and refer to Working with Parameters and Return Codes in the Execute SQL Task for details.

ssis sql 2000 image to 2008 varbinary Failed to retrieve long data for column

I have a task that to migrate the image type column from sql 2000 to varbinary type in sql 2008.
The source column having 3812353 max datalength size for the column.
The package always failed with following error message.
[OLE DB Source [13177]] Error: Failed to retrieve long data for column "attch_file_content_t".
[OLE DB Source [13177]] Error: There was an error with output column "attch_file_content_t" (13209) on output "OLE DB Source Output" (13187). The column status returned was: "DBSTATUS_UNAVAILABLE".
[OLE DB Source [13177]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "output column "attch_file_content_t" (13209)" failed because error code 0xC0209071 occurred, and the error row disposition on "output column "attch_file_content_t" (13209)" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.
It basically was the connection error.
i manage to solve the connection issue on one table but now found another issue on another table.
The initial intention is migrate the source data to staging.
The source are sql 2000, they have some attachment as an image type
Then we have the Failed to retrieve long data for column issue when we just do the select * from tableA
Then I try to do the select cast(ImageTypeColumn) as varbinary(8000) from tableA
now it work for those data which is not exist 8000 byte
But unfortunately in the another table, there exist some rows data length is huge.
Thus it failed again when we do the select cast(ImageTypeColumn) as varbinary(8000) from tableA
In Microsoft SQL Server 2000 and earlier versions, the varbinary data type had a maximum limit of 8,000 bytes. To store up to 2 GB of binary data the image data type needs to be used instead.
Finally i found a solution on that.
Using ADO.net Source instead of using the OLEDB.net Source