RE: problems with copy command - Mailing list pgsql-general

From Bill Barnes
Subject RE: problems with copy command
Date
Msg-id 391AB107@operamail.com
Whole thread Raw
In response to problems with copy command  ("Paolo Zampieri" <pzampier@it.ip-plus.net>)
List pgsql-general
Hi Paolo:

Just went thru this exercise moving some 40 tables comprising more than 100k
records from Win95 Sybase SQL Studio to Postgresql.  I wanted the same data
structures in Postgresql that I had in Sybase.
Overview:
Using PostgreSQL 6.5.3 in SuSE 6.4
You must be a Postgresql user with create table privileges.  If you log in as
'postgres' you can set these users up in pgaccess.
Used the Sybase unload to dump structures and data to their 'reload.sql' and
data files.  The 'create table' commands required extensive editing because of
quote marks and other Sybase things.  Used kpsql to create the tables.

The data files were not usable for Postgresql, so I unloaded each table's data
into an ascii file with semi-colon (;) delimiters.  Named them 'tablex.txt'.

Executed this copy command under kpsql;
   copy tablex from '/dir/tablex.txt'  using delimiters ';';

Problems-----
  copy will not format blank dates, so edited date fields to pseudo date or
'\N'
  copy will not format blank numeric fields, so built my tables as float8.
  lots of other problems having to do with Sybase output, like a spurious
 character at the end of the ascii file, troubles reading its own data while
    unloading.
  after every 'create tablex' script in kpsql, I had to exit kpsql before I
could     execute another SQL.

Once over these problems the process worked very well.  You don't need pipes
or inserts or other workarounds.
Let me know if I can help.

Regards,
Bill Barnes

>===== Original Message From "Paolo Zampieri" <pzampier@it.ip-plus.net> =====
>hello everybody,
>I tried to copy a file into a table from the postgres terminal, and all
>worked fine.
>But when I tryed the same with the php pg_exec() command the result was:
>
>PostgresSQL query failed: ERROR: You must have Postgres superuser privilege
>to do a COPY directly to or from a file. Anyone can COPY to stdout or from
>stdin. Psql's \copy command also works for anyone.
>
>I can't use \copy from php because there is no \copy interface in php, only
>pg_exec(sql command), so the only way is to use stdin!
>Someone has ideas about how to pipe the file and than read the pipe from the
>copy sql command?
>
>hope will interest
>bye

------------------------------------------------------------
This e-mail has been sent to  you  courtesy of OperaMail,  a
free  web-based  service  from  Opera  Software,  makers  of
the award-winning Web Browser - http://www.operasoftware.com
------------------------------------------------------------


pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Congratulations and Some Thoughts
Next
From: "Robert B. Easter"
Date:
Subject: Re: [HACKERS] inheritance and primary and foreign keys