Hello
I have found a solution for my second problem.
Indeed is necessary to use a endcopy command when we use
a copy instruction.
The code should be this :
$res = $db->exec('COPY temp FROM stdin');
open (FIC,'<result.res');
while (<FIC>) {
$db->putline($_);
}
$db->putline("\\.\n");
$db->endcopy;
close(FIC);
The most important is the $db->putline("\\.\n"); with \n before use endcopy. My error had to omit this :-)
Today my copy code works fine :-)
> On Fri, Oct 11, 2002 at 12:29:40AM +0200, victor3.lopes@voila.fr wrote:
> > Hello, anyone have a response of my problem ?
>
> Maybe. See below...
> >
> > I have try two methods for charge my result.res in my table.
> >
> > the first method :
> >
> > $res = $db->exec(" COPY temp FROM "full path\result.res ");
> >
> > Unfortunately I did not succeed in using this method, I had always an
> > error ( While placing postgres in debug mode ).
> >
> > DEBUG: StartTransactionCommand
> > DEBUG: query: COPY temp FROM '-- my path -- /result.res'
> > DEBUG: parse tree: { QUERY :command 5 :utility ? :resultRelation 0 :into <>
> > :isPortal false :isBinary false :isTemp false :hasAggs false :hasSubLinks false :rtable
> > <> :jointree <> :rowMarks () :targetList <> :groupClause <> :havingQual <>
> > :distinctClause <> :sortClause <> :limitOffset <> :limitCount <> :setOperations <>
> > :resultRelations ()}
> > DEBUG: ProcessUtility: COPY temp FROM '-- my path -- /result.res'
> > 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 don't understand why this error because the superuser postgres (who had create for
> > launch the server) have the privilege
> > for access and read this file.
>
> In your Perl script, what user and password did you use to connect to
> the database?
Indeed my user is http and is not the superuser. In my host superuser postgresql is user postgres.
>You need to *connect* as the Postgres superuser (which is
> almost always the user named 'postgres').
>
> If you are connected as user postgres then your COPY command should
> work.
>
> --
> Robin Munn
> rmunn@pobox.com
Ok, thanks for this information, but i find it's a pity because on all my code i use the user http for to access
tables and I do not see why it would be necessary that I connect differently to use command Copy : - ( for
access directly to my file.
Perhaps a problem of security ?
Thanks
Victor
------------------------------------------
Faites un voeu et puis Voila ! www.voila.fr