Portál AbcLinuxu, 25. října 2025 22:06
Oracle dodává nástroj sqlcl. Ten umí nahrávat CSV. Příklad zde. Program sqlcl je napsán v Javě, tak by jej možná šlo přímo použít ve WS.
Parsovat CSV v PL/SQL bude IMHO hodně zbytečné práce.
Osobně tyto věci kóduji v Ruby. Vypadalo by to asi takto:
#!/bin/ruby
require 'oci8'
require 'csv'
con=OCI8.new('user','password','DB')
cmd=con.parse("insert into MyTable values ( :jedna, :dva, :tri, :ctyri, :pet )" )
CSV.foreach('file.csv') { |r| cmd.exec(*r) }
Pokud budte plnit něco jiného než stringy,tak je nutné udělat explicitní bind:
cmd.bind_param(:jedna, r[0], String ) m=r[1].match /(?<den>\d\d).(?<mesic>\d\d).(?<rok>\d\d\d\d)/ cmd.bind_param(:dva, OraDate(m[:rok],m[:mesic],m[:den]), OraDate )
nebo udělat přetypování v prepared statementu
cmd=con.parse("insert into MyTable values ( :jedna, to_date(:dva,'DD.MM.YYYY'), :tri, :ctyri, :pet )" )
Vše nakódováno po paměti bez testování,tak tam budou chybky.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.