[Lugge] Re: Inserimento dati in PostgreSQL

  • From: Massimo Arnaudo <marnaudo@xxxxxxxxx>
  • To: lugge@xxxxxxxxxxxxx
  • Date: Mon, 14 Oct 2002 20:47:58 +0200

* Giorgio Andreoletti <giorgio.andreoletti@xxxxxxxxxxxxxx> [lunedì 07 ottobre 
2002, alle 15:23]:
> 
> Temo che con un solo comando non te la caverai facilmente: devi nestare due 
> cicli, il primo che fa una select dul DBF, l'altro che legge i dati e fa la 
> rispettiva INSERT. Per farlo puoi scrivere una funzione direttamente in 
> postgres (ammetto di non averlo mai fatto), oppure appoggiarti ad un 
> linguaggio (come il python o il perl) che interagiscano con postgres, 
> preoccupandosi di fare la SELECT e, dentro, le varie INSERT ....
> 
> se invece trovi un modo per fare il tutto con un solo comando, fammi sapere 
> !
Ciao Giorgio,
gira gira a qualcosa sono giunto.

Per importare i dati da un file esterno ho utilizzato il comando copy.
mydb=# \h copy 
Command:     COPY
Description: copy data between files and tables
Syntax:
COPY [ BINARY ] table [ WITH OIDS ]
FROM { 'filename' | stdin }
[ [USING] DELIMITERS 'delimiter' ]
[ WITH NULL AS 'null string' ]
COPY [ BINARY ] table [ WITH OIDS ]
TO { 'filename' | stdout }
[ [USING] DELIMITERS 'delimiter' ]
[ WITH NULL AS 'null string' ]

Fino a quì tutto abbastanza chiaro, sennochè...

mydb=#  copy ordini from '/home/masarn1/ordini.txt' delimiters ';';
ERROR:  copy: line 1, pg_atoi: error in "02/01/2001": can't parse "/01/2001"
mydb=# 

in pratica non gradisce la data del file con quel formato, suppongo.
La prima riga del file txt risulta essere:

1;02/01/2001;454001;02/01/2001;"ALIMENTAR SHOPPING SAS - 
EKOM";1;;;;;;605;"ARNAUDO";"ARNAUDO"

Qualche suggerimento per ovviare al problema?
Grazie

Massimo
-- 
E impari che puoi davvero sopportare,
che sei davvero forte,
e che vali davvero.
---             ---
HomePage:       http://spazioinwind.iol.it/arnaudo
LinuxGroup:     http://lugge.ziobudda.net
========----------
 
 Prima di scrivere in m-list per favore leggi il regolamento
 http://www.lugge.net/soci/manifesto.htm#list

 Archivio delle e-mail postate in lista
 http://www.freelists.org/archives/lugge/

 Modifica dell'account su freelists
 http://www.freelists.org/cgi-bin/lsg2.cgi 

----------========

 La sede e` aperta ogni martedi` pomeriggio 14.30-18.00
 http://www.lugge.net/soci/sede.htm
 


 

Other related posts: