Ik probeer een csv besteand in te lezen met het volgende statement:
select t.codeBedrijf
from read_file_text@os('C:\CSVData\ExportKosten.csv') rfe
join csvtable
(passing rfe.file_contents
column delimiter ';'
skip lines 1
columns codeBedrijf varchar(50) NOT NULL position next
) T
Dit geeft de volgende foutmelding:
itgensql056
Statement #1 ‘select t.code… delimiter ‘;’’ starting on line 1 caused an error.
Syntax error between the two ‘***’ on line 5, column 30:
select t.codeBedrijf… column delimiter ‘;’
Error: no viable alternative at input ‘select t.codeBedrijf\r\nfrom read_file_text@os(‘C:\CSVData\ExportKosten.csv’) rfe\r\njoin csvtable\r\n (passing rfe.file_contents\r\n column delimiter ‘;’’.
De data kan ingelezen worden met een SQL-statement zoals:
select t.*
from csvtable
( passing file 'c:\temp\ExportKostenBeknopt.csv'
row delimiter chr(10)
column delimiter ','
skip lines 1
columns codeBedrijf varchar(50) not null position next
, codeProject varchar(30) not null position next
, codeKostensoort varchar(30) null position next
, Period varchar(30) not null position next
, QuantityWerkbegroting decimal not null position next
, AmountStdWerkbegroting decimal not null position next
, QuantityToegestanekosten decimal not null position next
, AmountStdToegestanekosten decimal not null position next
) t
Merk op dat het expliciet nodig is om de regelseparator te vermelden als chr(10). Dit is het linefeed character (in bijvoorbeeld vi zichtbaar als ^J). Voor een MacOS-bestand zou expliciet chr(13) opgegeven moeten worden (in bijvoorbeeld vi zichtbaar als ^M).
Deze vraag is automatisch gesloten na 2 weken inactiviteit. Het laatste gegeven antwoord is gemarkeerd als oplossing.
Gelieve een nieuwe vraag te stellen via een apart topic als het probleem opnieuw optreedt. Gelieve in de nieuwe vraag een link naar dit topic op te nemen door de URL er van in de tekst te plakken.