Invantive SQL biedt standaard mogelijkheden om tekstbestanden te verwerken in CSV, JSON, NDJSON, XML, HTML en Excel-formaat. Voor CSV-bestanden bestaat daarvoor csvtable
zoals beschreven in Metadata definieren in csvtable, xmltable, jsontable en elders.
In de definitie van csvtable
zoals beschreven in de SQL-grammatica kunnen de verwachte kolommen opgegeven worden, bestaande uit naam, datatype, verplicht en label.
Numeriek formaat bij CSV
Bij de conversie naar een getal is het voortaan ook mogelijk om het formaat op te geven waarin het getal is weergegeven. De volgende formaten worden ondersteund:
-
,.
: punt als decimale scheider, comma als groepsscheider. -
.,
: comma als decimale scheider, punt als groepsscheider.
De standaardwaarde (zoals voorheen) is ,.
met punt als decimale scheider en comma als groepsscheider.
Voorbeeld CSV inlezen
Het inlezen van een CSV-bestand met een kopregel en daaronder de data als:
- artikelcode
- omschrijving
- verkoopprijs
- inkoopprijs
kan met bijvoorbeeld:
select t.partno
, t.partdescr_dut
, round(t.new_price_eur, 2)
new_price_eur
, round(t.gross_price, 2)
gross_price
from read_file_text@os('c:\temp\prijzen.csv') rfe
join csvtable
( passing rfe.file_contents
column delimiter chr(9)
skip lines 1
columns partno varchar2(30) not null position next
, partdescr_dut varchar2(240) null position next
, gross_price number not null format '.,' position next
, new_price_eur number not null format '.,' position next
) t