我正在尝试使用java
在postgresql数据库中插入csv文件代码是
CopyManager copyManager = new CopyManager((BaseConnection) conn);
FileReader fileReader = new FileReader(filename);
copyManager.copyIn("COPY meta.fk_payment_temp(\n"+
"settlement_ref_no, order_type, fulfilment_type, seller_sku, wsn, \n" +
" order_id, order_item_id, order_date, dispatch_date, delivery_date, \n" +
" cancellation_date, settlement_date, order_status, quantity, order_item_value, \n" +
" refund, protection_fund, total_marketplace_fee, service_tax, \n" +
" settlement_value, commission_rate, commission, fee_discount, \n" +
" cancellation_fee, fixed_fee, emi_fee, total_weight, shipping_fee, \n" +
" reverse_shipping_fee, shipping_zone, token_of_apology, pick_and_pack_fee, \n" +
" storage_fee, removal_fee, invoice_id, invoice_date, invoice_amount, \n" +
" sub_category, total_offer_amount, my_offer_share, flipkart_offer_share)\n" +
" FROM STDIN with csv header delimiter ','", fileReader );
csv文件和表
中有41列错误细节是:
其中:COPY fk_payment_temp,第2行: “NFT-150331087GN00107XXXXXXX,预付费,无FA,BD46-157,OD102411813209536003,166288248,” 三月 25,2015“,”......“
因为我们看到错误发生在“2015年3月25日”,但数据是
NFT-150331087GN00107XXXXXXX预付费非FA-BD BD46-157 OD102411820209536003 166288248 25-Mar-15 26-Mar-15 27-Mar-15 31-Mar-15已交付1 339 339 0 0 -85.26 -10.54 243.2 15 -50.86 0 0 -5 0 0.3 -29.4 0 LOCAL 0 0 0 0 IN27248 26-Mar-15 309 babydoll 0 0 0
我怎么能解决这个问题?
答案 0 :(得分:0)
我的经验是,这几乎总是由格式错误的csv数据引起的。确实知道格式,如何审查材料以进行适当的转义等等,确实无可替代。而CSV并不简单。关于嵌入式行尾字符之类的内容有很多规则。
一个好的起点(如果您还没有找到答案)将通过电子表格运行数据并查看错误列上的内容。