postgresql - 在存储函数中使用 COPY FROM STDIN
问题描述
我正在尝试将数据从存储的 PostgreSQL 函数复制到表中。行的数据和表名是从java程序接收的,导致错误的部分是这个:
_copyquery := FORMAT('COPY %s FROM STDIN (DELIMITER ''|'', FORMAT CSV); %s \.', _tablename, _stdin);
execute _copyquery;
其中 _tablename 是表的名称,而 _stdin 是格式如下的数据行:
12|34|139901177705664|1545226308991|991389|1545226308991|1545226308991|0|0|0|0|0|0|000|0.0.0.0|0.0.0.0|2328620776|0|0|0|0|0|0|0|0.0.0.0|0.0.0.0|0|0|0|0||0|0|0|-|0|0|0|0|0|195.46.227.124|33840|10.110.186.41|2123|2|0|3090304976|0.0.0.0|::|0|||0|0|0|0|0|0|0|0|2|5
我得到的错误是:
错误:“12”处或附近的语法错误
其中“12”始终是第一个字段,最常见的是 12 或 3。任何想法为什么这不起作用?
解决方案
我发现我的请求目前无法执行,并已决定使用CopyManager以编程方式插入数据。请记住,我使用插入语句处理的数据量会变慢,这是一个很好的解决方案。
推荐阅读
- angular - IIS 10 中的 URL 重写
- php - 如何在 TCPDF 中添加 Jameel Noori Nastaleeq 字体?
- reactjs - 具有百分比或替代的反应原生动画时间序列
- java - Java Streams - 将流结果从一个对象转换为另一个
- linux - 有人能告诉我错误在哪里吗
- node.js - 如何将自定义错误从 Lambda 发送到 Api 网关
- java - 无法使用 PHP Java Bridge 在 PHP 中运行 java 文件
- reactjs - 如何在电子(macOS catalina)中检查屏幕捕获的权限状态
- node.js - 使用 Node 和 Python 对页面源进行哈希处理时的区别
- android-studio - Android studio:为只读文件添加注释