2013-10-18 37 views
0

我知道这将是一个额头sla子。当我突出显示并执行我的复制命令时,它工作正常。但是,当我把它放在do语句中并执行时,出现以下错误:语法错误在或近

ERROR: syntax error at or near "Warner" 

我环顾四周,找不到明显的解决方案。我在do语句结尾处移动了分号,将其移除,错误不会消失。任何想法的人?谢谢...

DO 
$$ 
BEGIN 
COPY _tmp_employer_create FROM STDIN; 
Warner Bros. Entertainment Inc. Manually Entered Manually_Entered-Unverified STUDIO 
Disney. Entertainment. Manually Entered Manually_Entered-Unverified STUDIO 
\. 
END; 
$$ 

回答

1

为什么在这里使用内联块(DO语句)?它没有任何意义。更多 - 内联块被解析为语法树 - 这意味着它可以有效地与stdin断开连接 - 所以没有办法,如何在DO语句中使用COPY和数据。

从服务器端脚本到标准输入或标准输出的任何访问都非常困难 - 而且在典型级别上是不可能的。

+0

我有些事情不利于我。我是一个新手(对PostgreSQL),网络管理员今天不在,否则我会完全从文件中完成。但我感谢你指出这些事情。我只需要处理手动执行它,直到星期一(当网络管理员回来)。 –

+0

如果你有一些CSV格式的文件,那么使用简单的COPY语句。不要使用DO语句。如果你可以启动一个控制台 - psql,那么你可以编写 - “\ copy _tmp_employer_create from pathfile csv” –

相关问题