如何使用命令行将 csv 文件复制到 Vertica 数据库中的 table?

How to copy csv file to a table in Vertica Data Base by using command line?

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

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 中那样创建密码文件吗?我希望你能帮助我或告诉我在哪里可以找到有关如何正确创建它的信息。

祝你有愉快的一天,致以最诚挚的问候!

所以你在 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"