Top

Name

csv_load_file — Imports a CSV file into table.

Synopsis

csv_load_file ( in file_name varchar ,
  in from_line integer ,
  in to_line integer ,
  table_name varchar ,
  in trx_log_mode integer ,
  in opts any );
 

Description

Imports a CSV file into table.

Parameters

file_name

Given as an input file_name will be parsed as CSV where it will insert into the table specified as table_name the lines between from_line and to_line offsets.

from_line

Default - 0, This means counted from the begining.

to_line

Default - null, This means counted to the end.

table_name

The table the data to be inserted into.

trx_log_mode

Default - 2. The trx_log_mode is used to do row auto commit and to log or not the transaction. The default mode is to do not log and do auto commit.

opts

Default - null. The opts paramater is used to specify the delimiter and quote. It should look like this:

vector ('csv-delimiter', self.delim, 'csv-quote', self.quot)

Errors

If table is not suitable in respect of number of columns or type of columns error will be signaled.

Examples

Example 24.124. Simple Use

SQL>create procedure my_csv_lf (in file_name varchar)
{
  declare tb_name varchar;
  declare ar any;

  -- to get the name of the table
  ar := csv_table_def(file_name);
  ar := split_and_decode(ar, 0,'\0\0 ');
  tb_name := trim (ar[2], '"');

  dbg_obj_print(tb_name);

  -- to create the table
  exec(csv_table_def(file_name));

  -- loading the data
  csv_load_file(file_name,0, null, concat('DB.DBA.', tb_name));
}
;

Done. -- 10 msec.

SQL>select my_csv_lf('tmp/MyContacts.csv');

callret
VARCHAR
______________________________________________

0

1 Rows. -- 231 msec.

SQL>select * from DB.DBA.tmp_MyContacts_csv;
First_Name_Last_Name_Middle_Name_Name_Nickname_E_mail_Addre
VARCHAR
_______________________________________________________________________________

First Name;Last Name;Middle Name;Name;Nickname;E-mail Address;Home Street;Home City;Home Postal Code;Home State;Home Country/Region;Home Phone;Home Fa
x;Mobile Phone;Personal Web Page;Business Street;Business City;Business Postal Code;Business State;Business Country/Region;Business Web Page;Business
Phone;Business Fax;Pager;Company;Job Title;Department;Office Location;Notes
;;; Virtuoso Nightly Builds on  oplusaix2 ;;virtuoso-nightly-builds@openlinksw.com;;;;;;;;;;;;;;;;;;;;;;;
......

202 Rows. -- 341 msec.