Skip to main content
Solved

Cdata XML Connector

  • 14 August 2020
  • 4 replies
  • 49 views

Hi I am trying retrieve data through an API using XML

I am getting the following error. The API requires I use a wildcard  to retrieve all values. My XML works if I use Postman / Swagger to test.

Error obtaining value for column 'ProductList.Product.ProductCode': Error parsing long value * ].

Details:

Error parsing long value * ].
Module: System.Data.CData.XML
dvo200m.hq
at dvo200m.Uw.qM(String )
at dvo200m.Uw.u(String , Int32 , Int32 , Boolean )
at dvo200m.fZ.Na(String , Int32 , Int32 )
at dvo200m.ZG.H(Int32 , Int32 , Int32 )

Error obtaining value for column 'ProductList.Product.ProductCode': Error parsing long value * ].
Module: System.Data.CData.XML
dvo200m.hq
at dvo200m.ZG.H(Int32 , Int32 , Int32 )
at dvo200m.ZG.GetValue(Int32 , Int32 )
at CData.Sql.ResultSetBase.GetValue(Int32 colIndex, Int32 dataType)
at dvo200m.Zv.L(Int32 , Int32 , Int32 )

Error obtaining value for column 'ProductList.Product.ProductCode': Error parsing long value * ].
Module: System.Data.CData.XML
dvo200m.hq
at dvo200m.Zv.L(Int32 , Int32 , Int32 )
at dvo200m.Zv.GetValue(Int32 )
at dvo200m.At.GetValue(Int32 )
at System.Data.CData.XML.XMLDataReader.GetValue(Int32 ordinal)
at System.Data.SqlClient.SqlBulkCopy.GetValueFromSourceRow(Int32 destRowIndex, Boolean& isSqlType, Boolean& isDataFeed, Boolean& isNull)
at System.Data.SqlClient.SqlBulkCopy.ReadWriteColumnValueAsync(Int32 col)
at System.Data.SqlClient.SqlBulkCopy.CopyColumnsAsync(Int32 col, TaskCompletionSource`1 source)
at System.Data.SqlClient.SqlBulkCopy.CopyRowsAsync(Int32 rowsSoFar, Int32 totalRows, CancellationToken cts, TaskCompletionSource`1 source)
at System.Data.SqlClient.SqlBulkCopy.CopyBatchesAsyncContinued(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource`1 source)
at System.Data.SqlClient.SqlBulkCopy.CopyBatchesAsync(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource`1 source)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestContinuedAsync(BulkCopySimpleResultSet internalResults, CancellationToken cts, TaskCompletionSource`1 source)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource`1 source)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalAsync(CancellationToken ctoken)
at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken)
at System.Data.SqlClient.SqlBulkCopy.WriteToServer(IDataReader reader)
at TimeXtender.DataManager.StepTransferSSISExecute.BulkCopySource(Boolean executeIncrementalLoad, DataSource dataSource, VariableResolveObject dynamicResolveObject)
at TimeXtender.DataManager.StepTransferSSISExecute.DoStageDataSource(Boolean isIncrementalAllowed, DataSource dataSource, StepSetup stepSetup, VariableResolveObject dynamicResolveObject)
at TimeXtender.DataManager.StepTransferSSISExecute.DoStage(StepSetup stepSetup, VariableResolveObject dynamicResolveObject)

Are the Data types being identified correctly? You may need to setup data type overrides to ensure the data types are not too restrictive.


Were you able to resolve this? I am able to pull the data on browser & Postman but it throws me off with 'Parsing data type' issue on Boolean or another Float types. I've used data type overrides too. 


I do see missing data on these certain fields for some records but I am expecting it to return NULL when It couldn't find anything on those particular fields. 


#21373   ---- My ticket on this


Hi Satish,
Try setting misc. > Type Detection Scheme: None

This will prevent the provider from trying to detect the data types and just bring everything in as varchar.

 

 


Reply