2017-07-20 2 views
2

ich den Inhalt einer CSV-Datei als neue Werte in Exact Online-Datensatzes unter Verwendung zum Beispiel die folgende SQL-Anweisung hochladen möchten:Hochladen von Inhalten CSV als neue maximale Aktienposition in Exact Online

update exactonlinerest..ItemWarehouses 
set maximumstock=0 
where id='06071a98-7c74-4c26-9dbe-1d422f533246' 
and maximumstock != 0 

ich kann abrufen der Inhalte der Datei mit:

select * 
from files('C:\path\SQLScripts', '*.csv', true)@os fle 
join read_file_text(fle.file_path)@os 

aber nicht in der Lage scheinen, den mehrzeiligen Text im file_contents Feld zu ändern Zeilen oder Datensätze zu trennen.

Wie kann ich die file_contents ‚s Feld (zum Beispiel 'update ...' || VALUE verwenden und diese dann über @@mydump.sql läuft oder direkt insert into/update-Anweisung) in mehreren Zeilen aufgeteilt?

Antwort

2

Denn jetzt konnte ich es mit regulären Ausdrücken lösen und dann in die SQL-Engine erzeugten SQL-Anweisung Laden wie folgt: Jedoch

select regexp_replace(rft.file_contents, '^([^,]*),([^,]*)(|,.*)$', 'update exactonlinerest..ItemWarehouses set maximumstock = $1 where code = $2 and maximumstock != $1;' || chr(13), 1, 0, 'm') stmts 
,  'dump2.sql' filename 
from files('C:\path\SQLScripts', '*.csv', true)@os fle 
join read_file_text(fle.file_path)@os rft 

local export documents in stmts to "c:\path\sqlscripts" filename column filename 

@c:\hantex\path\dump2.sql 

, es fehleranfällig ist, wenn ich einen Apostroph haben in der Artikelcode.

+0

In der neueren Version möchten Sie möglicherweise read_file_text (name, true) verwenden und dann in csv_split_row() einspeisen. –

Verwandte Themen