Overview

A delimiter is a character that separates text strings. Common delimiters are:
  • Commas (,)
  • Semicolon (;)
  • Quotes ( ”, ’ )
  • Dash (-)
  • Pipes (|)
  • Slashes ( / \ ).
By default, the COPY FROM function accepts commas (,).

Syntax

The syntax for COPY FROM is as follows:
COPY table_name FROM 'file_path' (DELIMITER 'delimiter');
Two parameters need to be specified in the syntax:
  • table_name: the table that will receive data from the file.
  • file_path: a link to the file location in the server.
  • DELIMITER 'delimiter': the delimiter used in the CSV file.

Example

Let’s have a look at the step-by-step below:

Step #1: Create a CSV File

First, you should create a CSV file and store it on your local computer. In this case, we use Dash ( - ) character to separate the text.
create a table - 1.0 modify a table - 1.2 drop a table - 2.2 rename a table - 2.0

Step #2: Import FIle from Local to Server

You can use the syntax below for importing the file to the server:
aws s3 cp ~/[file location on your local computer] s3://[server location]/[file name]
Next, import the file to the server using the above syntax:
aws s3 cp ~/Documents/feature2.csv s3://oxla-testdata/cayo/feature2.csv
If it’s successfully imported, you will get the following result:
upload: Documents/feature2.csv to s3://oxla-testdata/cayo/feature2.csv

Step #3: Connect to Oxla Server

Connect to the Oxla server using the command below:
psql -h buildfarm.oxla.com -p 6000
You are now in the Oxla environment if you get the output below.
psql (15.1 (Ubuntu 15.1-1.pgdg22.10+1), server Oxla 1.0)
WARNING: psql major version 15, server major version 0.0.
         Some psql features might not work.
Type "help" for help.

Step #4: Create a Table

Before creating a table, check for duplicate tables with the statement below:
DESCRIBE DATABASE
In return, you will retrieve a list of existing tables in Oxla.
+----------------------------+
| name                       |
+----------------------------+
| supplier_scale_1_no_index  |
| features                   |
| orders                     |
| features2                  |
| featurestable              |
| featurestable1             |
| featurestable10            |
+----------------------------+
Ensure you are not creating duplicate tables.
Create a “featurelisttable” table using the command below:
CREATE TABLE featurelisttable (featurename text, version float);

Step #5: Copy the CSV File Into Table

Because we are using Dash ( - ), we need to add a DELIMITER param with a specified character, as shown below:
COPY featurelisttable FROM 's3://oxla-testdata/cayo/feature2.csv' (DELIMITER '-');
You will get the following successful result:
--
(0 rows)
Otherwise, you will get the error message below:
ERROR: unexpected data at line: 1 col: 0 position: 108, expected , but got:

Step #6: Retrieve the Table

To verify that the data was imported correctly from the server, retrieve all the data using the SELECT statement:
SELECT * FROM featurelisttable;
You will have the same data in the table as in the CSV file.
+-----------------+----------+
| featurename     | version  | 
+-----------------+----------+
| create a table  | 1        |
| modify a table  | 1.2      |
| drop a table    | 2.2      |
| rename a table  | 2        |
+-----------------+----------+