Data Hub: Exporteren resultaten Exact Online query naar CSV

Hoe kunnen de resultaten van een query op de Exact Online API via Data Hub naar een CSV bestand geëxporteerd worden?

Het gebruik van volgende in het .sql bestand lukt niet:

SELECT * FROM ExactOnlineREST.Financial.FinancialPeriods;
local export results as “c:\temp\prefix.csv” format csv;

image

Er zijn verschillende manieren om te exporteren naar CSV.

In bovenstaand voorbeeld ontbreekt de witregel die als scheider nodig is en er een overbodige ‘;’ staat achter het Invantive Script-statement. Correcter is bijvoorbeeld:

SELECT * FROM ExactOnlineREST.Financial.FinancialPeriods;

local export results as "c:\temp\prefix.csv" format csv include technical headers

Invantive Script staat beschreven in:

Een andere aanpak is door de omzetting naar CSV te laten gebeuren met for csv zoals beschreven in:

Vervolgens kan het resultaat dan met local export ... format txt exclude headers' het gehele resultaat als 1 kolom geexporteerd worden. Dit kan ook via een insertopwrite_file@Os` zoals:

  insert into write_file@Os
  ( file_path
  , file_contents
  )
  select ...
  ,      ...
  from   ...

Met behulp van bovenstaande feedback is dit gelukt.

Als tussenstap werd wel een tijdelijke tabel in het geheugen gebruikt, zonder dit verkreeg ik volgende error:

Exclamation itgencun016:
Uitroep itgencmr115:
The number of columns from an SQL action statement must be exactly one instead of 25.

Volgende query levert een werkend script op:

CREATE OR REPLACE TABLE tmp@InMemoryStorage
AS 
SELECT * 
FROM   ExactOnlineREST.Financial.FinancialPeriods@eolbe

SELECT * FROM tmp@InMemoryStorage

local export results as "c:\temp\prefix.csv" format csv fieldseparator ";"

Fijn dat gelukt is!

De itgencmr115-foutmelding lukt niet om op te wekken met genoemd script.

Mogelijk werden er een statementbatch tegelijk afgevuurd in plaats van maar een statement?

Bijvoorbeeld:

select * from tabel1;
select * from tabel2;

local export results ...

in plaats van losse statements met een witregel als batchscheider:

select * from tabel1;

select * from tabel2;

local export results ...