gpt4 book ai didi

postgresql - 从 text.rpt 文件复制数据以将其粘贴到 pgadmin 中的 postgresql

转载 作者:行者123 更新时间:2023-11-29 13:59:18 29 4
gpt4 key购买 nike

当我运行时:

COPY con (date,kgs) 
FROM 'H:Sir\\data\\reporting\\hi.rpt'
WITH DELIMITER ','
CSV HEADER
date AS 'Datum/Uhrzeit'
kgs AS 'Summe'

我得到错误:

WARNING:  nonstandard use of \\ in a string literal
LINE 2: FROM 'H:Sudhir\\Conair data\\TBreporting\\hi.txt'
^
HINT: Use the escape string syntax for backslashes, e.g., E'\\'.

这个问题困扰我好久了。帮忙?

最佳答案

这不是错误,只是一个警告。它与文件内容无关,它与 PostgreSQL 设置和 COPY 有关。您正在使用的命令语法。

您使用的是 8.1 之后的 PostgreSQL standard_conforming_strings关闭 - 在 9.1 之前(默认关闭)或手动关闭的较新版本。

这会导致字符串中出现反斜杠,例如 bob\ted , 被解释为转义,因此该字符串将是 bob<tab>ted带有文字选项卡,如 \t是标签的转义符。

像这样解释字符串违反了 SQL 标准,它没有 C 风格的反斜杠转义。多年前,PostgreSQL 团队决定改用 SQL 标准做事方式。出于向后兼容性的原因,它分两个阶段完成:

  • 添加standard_conforming_strings使用字符串的 SQL 标准解释的选项,但默认为关闭。使用非标准 PostgreSQL 字符串解释时发出警告。添加一个新的 E'string'样式以允许应用程序明确请求字符串中的转义处理。

  • 几个版本后,转standard_conforming_strings默认情况下,一旦人们更新并修复了他们的应用程序产生的警告。据说。

\ 的转义是\\ .因此,像您(或您正在使用的工具)那样“加倍”反斜杠是正确的。 PostgreSQL 显示警告,因为它不知道您是否在何时写入 H:Sir\\data\\reporting\\hi.rpt你的意思是字面上的H:Sir\\data\\reporting\\hi.rpt (如 SQL 规范所述)或 H:Sir\data\reporting\hi.rpt (就像 PostgreSQL 曾经做的那样,违反标准)。

因此您的查询没有任何问题。如果你想摆脱警告,要么转 standard_conforming_strings on ,或添加明确的 E''到你的字符串。

关于postgresql - 从 text.rpt 文件复制数据以将其粘贴到 pgadmin 中的 postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24465965/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com