我必须将一些postgres表内容复制到CSV文件中,以便使用Talend进行进一步处理。
当我尝试
时copy table_name to ‘/tmp/export/table_name.csv’ with CSV;
使用' tpostgresqlRow'组件,它提出错误说"需要超级用户访问",我不会得到。
作为替代方案,我试过" \ copy"命令为
\\copy table_name to ‘/tmp/export/table_name.csv’ with CSV;"
(第一个斜杠用于逃避另一个)。仍然在' \'""
中输出错误"语法错误我也尝试使用tpostgresqlBulkExec组件,它在内部使用" copy"命令,它也提出错误说"需要超级用户访问"。
有没有办法执行这个postgres" copy"使用Talend批量命令?
非常感谢任何帮助。
答案 0 :(得分:0)
copy命令需要访问postgres表和本地文件系统。
我认为您的问题是由于您无法访问本地文件夹而导致的。您需要对其进行排序,或尝试使用您知道可以访问的其他文件夹。
使用相同的用户,如果你尝试使用linux命令
touch /tmp/export/test.csv
您可能会看到错误。
答案 1 :(得分:0)
我收到Talend支持团队的确认,tPostgresqlRow组件不支持' COPY'命令。我通过安装PSQL客户端并使用Talend中的tSSH组件调用它来解决我的问题,以执行所需的“复制”#39;命令。