Postgres-使用\ COPY在数字列中强制使用NULL值

时间:2018-09-06 22:31:51

标签: sql postgresql psql data-warehouse

我正在将大型CSV文件写入Postgres表。列是数据类型的混合。一些是数字的,其中一些数字列包含空单元格。

这是示例行。 (您必须单击“运行代码段”以查看示例行的正确视图。)

import sys
SHOULD_IGNORE_EXCEPTIONS = " ".join(sys.argv).endswith("run python manage.py shell")

RAVEN_CONFIG = {
    'dsn': '...',
    'ignore_exceptions': ['*'] if SHOULD_IGNORE_EXCEPTIONS else [],
}

当我使用此命令写表时

SELECT PARSE_DATETIME('%a,%d %b %Y %E#S' , 'Fri, 31 Aug 2018 13:00:57 +0000') 

我收到此错误

<style type="text/css">
	table.tableizer-table {
		font-size: 12px;
		border: 1px solid #CCC; 
		font-family: Arial, Helvetica, sans-serif;
	} 
	.tableizer-table td {
		padding: 4px;
		margin: 3px;
		border: 1px solid #CCC;
	}
	.tableizer-table th {
		background-color: #104E8B; 
		color: #FFF;
		font-weight: bold;
	}
</style>
<table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th>cert</th><th>docket</th><th>fed_rssd</th><th>rssdhcr</th><th>name</th><th>city</th><th>stalp</th><th>zip</th><th>repdte</th><th>rundate</th><th>bkclass</th><th>address</th><th>namehcr</th><th>offdom</th><th>offfor</th><th>stmult</th><th>specgrp</th><th>subchaps</th><th>county</th><th>cbsa_metro</th><th>cbsa_metro_name</th><th>estymd</th><th>insdate</th><th>effdate</th><th>mutual</th><th>parcert</th><th>trust</th><th>regagnt</th><th>insagnt1</th><th>fdicdbs</th><th>fdicsupv</th><th>fldoff</th><th>fed</th><th>occdist</th><th>otsregnm</th><th>inst.webaddr</th><th>P3GTYPAR</th><th>P3GTY</th><th>P3GTYGNM</th><th>P9GTYPAR</th><th>P9GTY</th><th>P9GTYGNM</th><th>NAGTYPAR</th><th>NAGTY</th><th>NAGTYGNM</th></tr></thead><tbody>
 <tr><td>16419</td><td>0</td><td>419255</td><td>1055780</td><td>1st Bank & Trust</td><td>Broken Bow</td><td>OK</td><td>74728</td><td>12/31/1992</td><td>8/4/2016</td><td>NM</td><td>210 North Broadway</td><td>SOUTHEASTERN BANCSHARES, INC.</td><td>3</td><td>0</td><td>0</td><td>8</td><td>0</td><td>Mccurtain</td><td>&nbsp;</td><td>&nbsp;</td><td>5/6/1946</td><td>5/6/1946</td><td>10/13/1997</td><td>Stock</td><td>0</td><td>1</td><td>FDIC</td><td>BIF</td><td>Dallas</td><td>DALLAS</td><td>Tulsa</td><td>Kansas City</td><td>Southern</td><td>West</td><td>http://www/1stbankandtrust.com</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td></td></tr>
</tbody></table>

在尝试复制到Postgres之前,我曾尝试在Excel中用单词“ NULL”(和“ null”)替换空单元格,但是我仍然遇到相同的错误。

表的架构没有说NOT NULL -所以这不是问题。 (例如,所讨论的列说:“ cbsa_metro数字”)

用数字数据类型列可以处理的空值替换空单元格的最佳方法是什么?

0 个答案:

没有答案