Thread: COPY from

COPY from

From
Mike
Date:
Using Postgresql ver. 8.3.7

I made a database called "receivables."
I made a table called "invoice."
The second column in table "invoice" is called "matter_num" and has a
data type of "numeric(5,0)".
When I try to copy data from .csv file to table "invoice" I receive
the following error message:

ERROR:  missing data for column "matter_num"

But there are numbers (4 digits in length) throughout the whole column
of the .csv file.

I tried removing all the (") delimiters, but copy failed with the same
error message.

What am I missing?
Thank you for your help.

Mike

Re: COPY from

From
Thom Brown
Date:
On 10 February 2010 23:46, Mike <1100100@gmail.com> wrote:
> Using Postgresql ver. 8.3.7
>
> I made a database called "receivables."
> I made a table called "invoice."
> The second column in table "invoice" is called "matter_num" and has a
> data type of "numeric(5,0)".
> When I try to copy data from .csv file to table "invoice" I receive
> the following error message:
>
> ERROR:  missing data for column "matter_num"
>
> But there are numbers (4 digits in length) throughout the whole column
> of the .csv file.
>
> I tried removing all the (") delimiters, but copy failed with the same
> error message.
>
> What am I missing?
> Thank you for your help.
>
> Mike
>

Are you sure the data in the file has more than 1 column?  And could
you provide a sample line from the file, and the COPY command you
used?

Thom

Re: COPY from

From
Mike
Date:
Tom,

Thanks for this.
I'm going to give it a try straightaway.

Re: COPY from

From
Mike
Date:
Thom,

Thanks too for your quick response.

Here's the requested data.
I have modified it to protect personally identifying information.

Line 1 from .csv file:
"XYZ CO.","5835","WILDSTUFF
INFO",28706,"11/27/2009","$DOLLARFIGURE","$DOLLARFIGURE",,0.00,0.00

COPY command:

copy invoice from '/home/m1/AR_Mod_1.csv';

Re: COPY from

From
Thom Brown
Date:
On 11 February 2010 00:20, Mike <1100100@gmail.com> wrote:
> Thom,
>
> Thanks too for your quick response.
>
> Here's the requested data.
> I have modified it to protect personally identifying information.
>
> Line 1 from .csv file:
> "XYZ CO.","5835","WILDSTUFF
> INFO",28706,"11/27/2009","$DOLLARFIGURE","$DOLLARFIGURE",,0.00,0.00
>
> COPY command:
>
> copy invoice from '/home/m1/AR_Mod_1.csv';
>

Ah, you need to specify that it's a CSV file.  Use: copy invoice from
'/home/m1/AR_Mod_1.csv' WITH CSV;

Regards

Thom

Re: COPY from

From
Mike
Date:
Mr. Wilcox, you are a Prince!
Works!
receivables=# copy invoice from '/home/m1/AR_Mod_1.csv' with delimiter ','CSV;
COPY 597

Thanks,
Mike

Re: COPY from

From
Mladen Gogala
Date:
You should probably use the CSV format like this:

scott=# copy emp from '/tmp/emp.csv' with csv;
COPY 14
scott=# select * from emp;
empno | ename  |    job    | mgr  |      hiredate       | sal  | comm | deptno
-------+--------+-----------+------+---------------------+------+------+--------
  7369 | SMITH  | CLERK     | 7902 | 1980-12-17 00:00:00 |  800 |      |     20
  7499 | ALLEN  | SALESMAN  | 7698 | 1981-02-20 00:00:00 | 1600 |  300 |     30
  7521 | WARD   | SALESMAN  | 7698 | 1981-02-22 00:00:00 | 1250 |  500 |     30
  7566 | JONES  | MANAGER   | 7839 | 1981-04-02 00:00:00 | 2975 |      |     20
  7654 | MARTIN | SALESMAN  | 7698 | 1981-09-28 00:00:00 | 1250 | 1400 |     30
  7698 | BLAKE  | MANAGER   | 7839 | 1981-05-01 00:00:00 | 2850 |      |     30
  7782 | CLARK  | MANAGER   | 7839 | 1981-06-09 00:00:00 | 2450 |      |     10
  7788 | SCOTT  | ANALYST   | 7566 | 1987-04-19 00:00:00 | 3000 |      |     20
  7839 | KING   | PRESIDENT |      | 1981-11-17 00:00:00 | 5000 |      |     10
  7844 | TURNER | SALESMAN  | 7698 | 1981-09-08 00:00:00 | 1500 |    0 |     30
  7876 | ADAMS  | CLERK     | 7788 | 1987-05-23 00:00:00 | 1100 |      |     20
  7900 | JAMES  | CLERK     | 7698 | 1981-12-03 00:00:00 |  950 |      |     30
  7902 | FORD   | ANALYST   | 7566 | 1981-12-03 00:00:00 | 3000 |      |     20
  7934 | MILLER | CLERK     | 7782 | 1982-01-23 00:00:00 | 1300 |      |     10
(14 rows)

scott

On Wed, 2010-02-10 at 19:20 -0500, Mike wrote:
Thom,

Thanks too for your quick response.

Here's the requested data.
I have modified it to protect personally identifying information.

Line 1 from .csv file:
"XYZ CO.","5835","WILDSTUFF
INFO",28706,"11/27/2009","$DOLLARFIGURE","$DOLLARFIGURE",,0.00,0.00

COPY command:

copy invoice from '/home/m1/AR_Mod_1.csv';

-- 
Mladen Gogala 
Sr. Oracle DBA
1500 Broadway
New York, NY 10036
(212) 329-5251
www.vmsinfo.com