Hi,
I am having some difficulties with a Execute SQL Task, I'll try to describe:
The task contains 2 queries:
UPDATE config SET last_timestamp_int=this_timestamp_int, this_timestamp_int=CAST(GETDATE() AS INT) WHERE company_id=?
SELECT last_timestamp_int AS last_timestamp_int, this_timestamp_int AS this_timestamp_int FROM config WHERE company_id=?
The ? reference to a variable set in Parameter Mapping, which has a initial string value set. Direction set to "Input", Datatype set to "varchar", and parametername to "0". The connectiontype is OLE DB. I have tried to set BypassPrepare to true, but that doesnt help.
The second query fetch 2 values which is stored in the task's Result Set, in two variables. Resultset is set to single row.
When I press Parse Query, I get an error:
"The query failed to parse. Parameter Information cannot be derived from SQL statements. Set parameter information before preparing command."
When I try to run the package, I get this error:
SSIS package "Package.dtsx" starting.
Error: 0xC002F210 at Store last timestamp in variable, Execute SQL Task: Executing the query "UPDATE config SET last_timestamp_int=this_timestamp_int, this_timestamp_int=CAST(GETDATE() AS INT) WHERE company_id=?
SELECT last_timestamp_int AS last_timestamp_int, this_timestamp_int AS this_timestamp_int FROM config WHERE company_id=?" failed with the following error: "No value given for one or more required parameters.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Task failed: Store last timestamp in variable
Warning: 0x80019002 at Define global variables: The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
Warning: 0x80019002 at Package: The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
SSIS package "Package.dtsx" finished: Failure.
Can someone please help me identify, what it is I am doing wrong?
Thanks in advance
Your setup looks correct to me, so I have two suggestions for troubleshooting this.
1. Break up the task into two separate tasks, one for the update and a second for the select.
2. Run profiler to see the value and result of your queries when they run.
I don't think there's any issue with the parsing. My understanding is that the parser doesn't know what to do with the ? variable so it always returns an error even if it's a valid working query.
|||Use two parameters, one for the UPDATE and one for the SELECT (even though the values of the parameters are the same)
No comments:
Post a Comment