首页 > 解决方案 > 如何使用命令行将 csv 文件复制到 Vertica 数据库中的表?

问题描述

我想知道是否有任何方法可以通过使用命令行 (CMD) 将数据从 csv 文件复制到 Vertica 数据库中的表中。我已经搜索了一段时间,但没有找到适合我的东西。我想创建与我所做的类似的东西,是将数据从 CSV 文件复制到 postgreSQL 数据库中的表的批处理文件:

C:
cd "C:\pgsql\bin"
psql -h suggestedorder.postgres.database.azure.com -d DataAnalytics -U dev_ext@suggestedorder -c "\copy planning.sap_mx_env_me2n_zaaptr_zpaitr_envase_transito (planta, folio, des_proveedor, fecha_carga, hora)from 'C:\Users\geradiaz.MODELO\Desktop\Envase\Transitos\Outputs\Transitos.csv' with (format csv, header)

(为了避免 CMD 询问我的密码,我创建了密码文件)

各位大侠,有什么方法可以做类似的吗?我需要先在 posgreSQL 中创建密码文件吗?我希望您能帮助我或告诉我在哪里可以找到有关如何正确创建它的信息。

有一个美好的一天,最好的问候!

标签: databasecmdcommand-linevertica

解决方案


所以你在一个 Windows 系统的 DOS 盒子里。

将环境变量添加到您的帐户,方法是点击 Windows 屏幕最左下角的 Windows 按钮旁边的放大镜,然后键入“环境变量”。您将看到一个点击列表,其中“编辑您的帐户的环境变量”和“编辑系统环境变量”。单击两者中的任何一个,具体取决于您是自己想要它还是整个 Windows 系统都想要它。使用 [New ...] 按钮添加 4 个变量,例如:

Variable         Value
VSQL_USER        dbadmin
VSQL_PASSWORD    dbadmin_s_password
VSQL_HOST        <ip address or host name>
VSQL_DATABASE    <database name, for example vmart>

并编辑变量:

Variable         Value
PATH             <what is already there>;C:\Program Files\Vertica Systems\VSQL64

然后去:

cd /d <the directory where your data file resides, not necessarily vsql.exe>
vsql -c "COPY planning.sap_mx_env_me2n_zaaptr_zpaitr_envase_transito ^
(planta, folio, des_proveedor, fecha_carga, hora) ^
FROM LOCAL 'C:\Users\geradiaz.MODELO\Desktop\Envase\Transitos\Outputs\Transitos.csv' ^
DELIMITER ',' SKIP 1 EXCEPTIONS 'con' REJECTMAX 3"

推荐阅读