1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
-
- This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
- project.
-
- Copyright (C) 1998-2018 OpenLink Software
-
- This project is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; only version 2 of the License, dated June 1991.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-->
<refentry id="fn_get_csv_row">
<refmeta>
<refentrytitle>get_csv_row</refentrytitle>
<refmiscinfo>file</refmiscinfo>
</refmeta>
<refnamediv>
<refname>get_csv_row</refname>
<refpurpose>This function takes a string_session containing CSV data, parses a row
and returns a vector with field values.
</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis id="fsyn_get_csv_row">
<funcprototype id="fproto_get_csv_row">
<funcdef><function>get_csv_row</function></funcdef>
<paramdef>in <parameter>ses</parameter> any</paramdef>
<paramdef>in <parameter>delim</parameter> char</paramdef>
<paramdef>in <parameter>quote</parameter> char</paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="desc_get_csv_row">
<title>Description</title>
<para>This function takes a string_session containing CSV data, parses a row
and returns a vector with field values.</para>
<para>Calling the function in a loop with same input will parse file line by line.</para>
<para>The function is also making a basic prediction of field types for varchar,
integer and float values, so the result data may have one of these. If come other datatype is need to be produced the caller can convert
the string using the BIF like cast sprintf_inverse and so on.</para>
</refsect1>
<refsect1 id="params_get_csv_row">
<title>Parameters</title>
<refsect2><title>ses</title>
<para>string_session containing CSV data</para>
</refsect2>
<refsect2><title>delim</title>
<para>Optional argument to handle tab, space delimited etc. formats.</para>
</refsect2>
<refsect2><title>quote</title>
<para>Optional argument to handle tab, space delimited etc. formats.</para>
</refsect2>
</refsect1>
<refsect1 id="ret_get_csv_row"><title>Return Types</title>
<para>Returns a vector with field values.</para>
</refsect1>
<!-- <refsect1 id="errors_get_csv_row">
<title>Errors</title>
<para>This function can generate the following errors:</para>
<errorcode></errorcode>
</refsect1>
-->
<refsect1 id="examples_get_csv_row">
<title>Examples</title>
<example id="ex_get_csv_row"><title>Simple Use</title>
<para>The following example prints on the Virtuoso Server console the CSV columns names:</para>
<programlisting><![CDATA[
SQL>create procedure my_csv (in file_name varchar)
{
dbg_obj_print(get_csv_row(file_open('tmp/MyContacts.csv')));
}
;
Done. -- 10 msec.
SQL>select my_csv('tmp/MyContacts.csv');
callret
VARCHAR
______________________
0
1 Rows. -- 10 msec.
-- and on the Virtuoso Server console will be shown:
('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
Fax;Mobile Phone;Personal Web Page;Business Street;Business City;Business Postal Code;Business State;Business Country/Region;Business Web Page;Busines
s Phone;Business Fax;Pager;Company;Job Title;Department;Office Location;Notes' )
]]></programlisting>
</example>
</refsect1>
<refsect1 id="seealso_get_csv_row">
<title>See Also</title>
<para><link linkend="fn_csv_load_file"><function>csv_load_file()</function></link></para>
<para><link linkend="fn_csv_load"><function>csv_load()</function></link></para>
<para><link linkend="fn_csv_parse"><function>csv_parse()</function></link></para>
<para><link linkend="fn_csv_cols_def"><function>csv_cols_def()</function></link></para>
<para><link linkend="fn_csv_table_def"><function>csv_table_def()</function></link></para>
</refsect1>
</refentry>
|