Anasayfa / Database / informix / Informix unload file to postgresql import

Informix unload file to postgresql import

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;

 

Hakkında ibrahim

İlgili Makaleler

informix server restart

onmode -uky tekrar açmak için oninit  

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.