database - 如何使用命令行将 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 中创建密码文件吗?我希望您能帮助我或告诉我在哪里可以找到有关如何正确创建它的信息。
有一个美好的一天,最好的问候!
解决方案
所以你在一个 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"
推荐阅读
- python - `pip install --upgrade -r requirements.txt` vs 冻结的模块版本
- vb.net - 如何在 vb.net 项目中查找缺少的“句柄”子句?
- repair - Microsoft Access 数据库引擎 2010 经常需要修复
- sql - 在 postgres 中找不到列
- javascript - 在嵌套 iframe 中递归定位元素
- json - Ansible:如何解析循环的注册变量?
- python - 如何在不结束整个程序的情况下退出函数?(Python)
- c - openmpi:printf 不等待 scanf
- apache - 将 Jira 服务器迁移到 https - 小工具和应用搜索不再起作用
- excel - 通过 VBA 加快在多个工作表中查找出现的速度