2

I am sending this query to a sql server in R using RODBC::sqlQuery

MERGE "mytable" AS Target USING ( VALUES ('myname','POLYGON ((148.0000000000000000 -20.0000000000000000, 148.0000000000000000 -20.0000000000000000, 148.0000000000000000 -20.0000000000000000, 148.0000000000000000 -20.0000000000000000, 148.0000000000000000 -20.0000000000000000))')) AS Source ("name","polygon")
                   ON (Target."name" = Source."name")
                   WHEN MATCHED THEN
                   UPDATE SET Target."polygon" = Source."polygon"
                   WHEN NOT MATCHED BY TARGET THEN
                   INSERT ("name","polygon")
                   VALUES (Source."name", Source."polygon")
                   OUTPUT $action, Inserted.*, Deleted.*

It fails when row_at_time argument of sqlQuery is more than 10, Error in odbcQuery(channel, query, rows_at_time) : 'Calloc' could not allocate memory (107374182400 of 1 bytes)

but works if row_at_time < 10. (still the query takes quite a few seconds which is surprising as the table is indexed and very small: less than 100 rows)

Any idea why? Thank you

EDIT: This is the structure of the table I am writing on:

enter image description here

RockScience
  • 17,932
  • 26
  • 89
  • 125

0 Answers0