2016-02-27 234 views
0

CREATE TABLE代码PostgreSQL错误:列数据丢失

CREATE TABLE contracte (
    castigator text, 
    castigatorcui text, 
    castigatortara text, 
    castigatorlocalitate text, 
    castigatoradresa text, 
    tip text, 
    tipcontract text, 
    tipprocedura text, 
    autoritatecontractanta text, 
    autoritatecontractantacui text, 
    tipac text, 
    tipactivitateac text, 
    numaranuntatribuire text, 
    dataanuntatribuire text, 
    tipincheierecontract text, 
    tipcriteriiatribuire text, 
    culicitatieelectronica text, 
    numaroferteprimite text, 
    subcontractat text, 
    numarcontract text, 
    datacontract text, 
    titlucontract text, 
    valoare text, 
    moneda text, 
    valoareron text, 
    valoareeur text, 
    cpvcodeid text, 
    cpvcode text, 
    numaranuntparticipare text, 
    dataanuntparticipare text, 
    valoareestimataparticipare text, 
    monedavaloareestimataparticipare text, 
    fonduricomunitare text, 
    tipfinantare text, 
    tiplegislatieid text, 
    fondeuropean text, 
    contractperiodic text, 
    depozitegarantii text, 
    modalitatifinantare text 
); 

SQL代码

COPY contracte(Castigator,CastigatorCUI,CastigatorTara,CastigatorLocalitate, 
    CastigatorAdresa,Tip,TipContract,TipProcedura,AutoritateContractanta, 
    AutoritateContractantaCUI,TipAC,TipActivitateAC,NumarAnuntAtribuire,DataAnuntAtribuire, 
    TipIncheiereContract,TipCriteriiAtribuire,CuLicitatieElectronica,NumarOfertePrimite, 
    Subcontractat,NumarContract,DataContract,TitluContract,Valoare,Moneda,ValoareRON, 
    ValoareEUR,CPVCodeID,CPVCode,NumarAnuntParticipare,DataAnuntParticipare, 
    ValoareEstimataParticipare,MonedaValoareEstimataParticipare,FonduriComunitare, 
    TipFinantare,TipLegislatieID,FondEuropean,ContractPeriodic,DepoziteGarantii, 
    ModalitatiFinantare) 
FROM 'C:\\Sinaia\SEAP 2007-2015\contracte-2009.csv' 
WITH DELIMITER '^'encoding 'WIN1252' NULL AS '/N'; 

错误,我得到:

ERROR: missing data for column "tip" 
    CONTEXT: COPY contracte, line 5312: "SC EUROSTRADE 
    SRL^7695851^Romania^Jilava^sediul social- Comuna Comana, Judetul Giurgiu" 
    ********** Error ********** 

ERROR: missing data for column "tip" 
SQL state: 22P04 
Context: COPY contracte, line 5312: "SC EUROSTRADE SRL^7695851^Romania^Jilava^sediul social- Comuna Comana, Judetul Giurgiu" 

,如果我尝试添加CSV标题,然后我得到另一个错误

ERROR: extra data after last expected column 
CONTEXT: COPY contracte, line 5209: "S.C. ELECTRA LUC S.R.L.^12094467^Romania^Bucuresti^Bucuresti, str. Vasile Lascar nr. 165, sector 2^A..." 
********** Error ********** 
+0

如果您的文件只有5列,那么最好只在'copy'命令中声明这5列? – devanand

+0

所有的行都很重要,而且当我声明较少的行时,我得到一个错误,有更多的列,然后说 –

+0

感谢编辑,现在它看起来更美丽。 –

回答

0

这不是正确或错误命令的一个问题,这个问题似乎数据质量

当我运行

\COPY contracte (Castigator,CastigatorCUI,CastigatorTara,CastigatorLocalitate,CastigatorAdresa,Tip,TipContract,TipProcedura,AutoritateContractanta,AutoritateContractantaCUI,TipAC,TipActivitateAC,NumarAnuntAtribuire,DataAnuntAtribuire,TipIncheiereContract,TipCriteriiAtribuire,CuLicitatieElectronica,NumarOfertePrimite,Subcontractat,NumarContract,DataContract,TitluContract,Valoare,Moneda,ValoareRON,ValoareEUR,CPVCodeID,CPVCode,NumarAnuntParticipare,DataAnuntParticipare,ValoareEstimataParticipare,MonedaValoareEstimataParticipare,FonduriComunitare,TipFinantare,TipLegislatieID,FondEuropean,ContractPeriodic,DepoziteGarantii,ModalitatiFinantare) 
FROM 'contracte-2007.csv' 
(format csv, header, delimiter '^', encoding 'win1252', null '/N'); 

我得到

ERROR: missing data for column "subcontractat" 
CONTEXT: COPY contracte, line 8659: "INSTITUTUL NATIONAL CERCETARE DEZVOLTARE PTR.PROTECTIA MUNCII-INCDPM,,ALEXANDRU DARABONT"^1558391^Ro..." 

,你可以看,它是行8659.

+0

我设法找到一个复杂的方法,通过首先转换文件使用此php脚本 '<?php $ path_to_file ='http://data.gov.ro/storage/f/2013-11 -01T13:59:27.012Z/contracte-2007.csv'; $ file_contents = file_get_contents($ path_to_file); $ file_contents = str_replace(“^”,“|”,$ file_contents); file_put_contents(“contracte2007.normalized.csv”,$ file_contents); ' 那么我将文件从ANSI转换为UTF8 然后直接用redbeanphp和MagicParser.php –

+0

https://drive.google.com/file/d/0B7aOUf0DFRnLZkFOZUw5a201Nmc加载文件在通过PHP脚本的Postgres /查看?USP =共享 –