添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

我要将CSV文件导入9.2版,但CSV文件在最终列位置中具有双引号双引号以表示NULL值:

“2”,“1001”,“9”,“2”,“0”,“0”,“130”,“”,“2012-10-22 09:33:07.073000000” “”

,它映射到类型为Timestamp的列。 postgreSQL不喜欢“”。我试图设置NULL选项,但也许我不是做正确吗?我尝试了 NULL as'“和 NULL''和 NULL as' 和 NULL“”但未成功;这是我的命令:

  COPY SCH.DEPTS 
FROM'H:/backups/DEPTS.csv'
WITH(
FORMAT CSV,
DELIMITER',',
NULL'',
HEADER TRUE,
QUOTE'“'

,但失败并显示错误:

错误:类型为timestamp的输入语法无效:

CONTEXT:COPY depts,line 2,column expirydate:“”

PS有一种方法可以指定布尔值到COPY命令的字符串表示形式?生成CSV(其中有很多)的实用程序使用“false “和”true“。

空字符串(”“)不是有效的时间戳, COPY 似乎不提供 FORCE NULL 或 FORCE EMPTY TO NULL 模式;它有相反的, FORCE NOT NULL ,但这不会做你想要的。

可能需要将 COPY 数据导入具有文本字段的表格,可能是 UNLOGGED 或 TEMPORARY 表,然后使用 INSERT INTO real_table SELECT col1,col,col3,NULLIF(tscol, ')FROM temp_table; 。

COPY true 和 false 作为布尔值,因此您不应该有任何问题。

或者,使用简单的Python脚本和 csv 模块读取CSV,然后使用 psycopg2 到 COPY 行插入Pg。或者只需写入新的清理过的CSV并将其送入 COPY 。或使用执行数据变换(如Pentaho Kettle或Talend)的ETL工具。

来源: http://www.it1352.com/550074.html

% python setup.py install % csv 2psql --schema=public --key=student_id,class_id example/enrolled. csv > enrolled.sql % psql -f enrolled.sql 将 CSV 文件转换为 PostgreSQL 表。 Usage: csv 2psql [options] ( input. csv | - ) [tablename] | psql options include: --schema=name use name as schema, and strip table name if needed --role=name use name as role for database transaction --key=a:b:c create db-utf8-转码器 一个AC程序,用于将 PostgreSQL 字符串 数据转码为UTF8。 该项目针对在Ubuntu 10.0.4 LTS上运行的 PostgreSQL 9.0。 欢迎移植到其他 PostgreSQL 版本和OS! 转码器一次只能对一张表运行。 它执行以下操作: 从命令行获取要转换的架构和表,以及其他选项(仅报告,强制转换,打印调试消息,帮助)。 打开与数据库的读写连接。 动态确定表的最短(按 计)唯一索引。 动态确定表的基于字符的 。 从唯一索引中获取最小值。 获取该最小值的行。 对于行中每个基于字符的 : 检测编码(如果可以); b。 将值从检测到的编码转换为UTF8。 如果无法确定特定 字符串 的编码,则返回原始字节流。 将已转换和/或未转换的数据写回到同一行。 确认更新后记录转换。 清理内存和数据库连接,然后退出。 请注意,步骤6、7和8不是事务性的 运行MySQL和 PostgreSQL 查询,并将结果存储在 CSV 中。 为什么要使用sql2 csv sql2 csv 是一个小型实用程序,用于运行MySQL和 PostgreSQL 查询并将输出存储在 CSV 文件中。 在某些环境中,例如在AWS RDS中使用MySQL或Aurora时,本机工具无法将查询结果导出到 CSV 。 sql2 csv 是提供此功能的简单模块。 pip3 install sql2 csv # Basic usage mysql [...] -e " SELECT * FROM table " | sql2 csv psql [...] -c " SELECT * FROM table " | sql2 csv 从标准输入 对于简单的查询,您可以将结果直接从mysql或psql通过sql2 csv 到sql2 csv 。 对于更复杂的查询,建议使用CLI( var pgarray = require('pg-array'); pgarray('node; ruby; rust', ';'); //=> '{node,ruby,rust}' var pgarray = require('pg-array'); pgarray(['node', 'ruby', 'rust']); //=> '{node,ruby,rust}' PostgreSQL 读写外部数据文本文件(oss_fdw)阿里云 > 云数据库 RDS> RDS PostgreSQL 数据库> 插件> 异构数据库访问 前提条件oss_fdw用例oss_fdw参数CREATE SERVER参数CREATE FOREIGN TABLE参数CREATE FOREIGN TABLE的导出模式参数辅助函数辅助功能oss_fdw注意事项ID和Key隐藏 阿里云支持通过oss_fdw插件将OSS中的数据加载到 PostgreSQL 和PPAS数据库中,也支持 COPY 命令可以快速的导入数据到 PostgreSQL 中,文件格式类似CVS之类。适合批量导入数据,比 \i 和恢复数据表快。 导出表数据到文件或 STDOUT : COPY tablename [(column [, ...])] TO {'filename' | STDOUT} [[WITH] [BINARY] [OIDS]     在需求的不断迭代中,表字段也会增加,有时候在大表增加的字段中,存在包含not null和default字段,这时候添加表字段就执行相当慢,因为 PostgreSQL 把表数据全部重写,参考:https://my.oschina.net/Kenyon/blog/99757;