TBL_TEST.unl dosyamızın sonunda ki pipe “|” yok etmek için python da küçük bir script ile temizleme yapıyoruz.
fpath = 'deneme.unl' def read_big_file_pipe(): with open(fpath) as infile: with open("new_deneme.unl", "a", encoding='utf-8') as file_object: for line in infile: new_line = line[:-2]+'\n' file_object.write(new_line)
postgresql sunucusunda ki tmp dizinine kopyalıyoruz. tablomuzu ilgili veritabanında oluşturuyoruz create table bla bla…
sudo -u postgres psql -d DATABASE_NAME
copy PG_TABLE_NAME from '/tmp/TBL_TEST.unl' WITH(FORMAT CSV, DELIMITER '|' , HEADER FALSE );
bazı durumlarda mükerer kayıtlar olabiliyor bunun için
CREATE TEMP TABLE tmp_table AS SELECT * FROM PG_TABLENAME WITH NO DATA;
copy tmp_table from '/tmp/TBL_TEST.unl' WITH(FORMAT CSV, DELIMITER '|' , HEADER FALSE );
INSERT INTO ebsqueuehist SELECT * FROM tmp_table ON CONFLICT DO NOTHING;