-1

我正在尝试从 vertica 数据库表中获取插入语句导出。我正在尝试创建一个生成插入语句的查询,但我遇到了语法问题。如何在 Vertica 中执行以下操作?

select "insert into owner.target_tbl values ( "  ||"'"||a.Head_id||"',"||"'"||a.creation_dt||"',"||"'"||a.section"'"||");" as Query_column
from source_tbl a
4

3 回答 3

4

如果您用双引号引用名称,Vertica 会认为它是一列,在您的情况下会导致错误。

解决方案将是:

  • 在字符串周围使用单引号
  • 如果您需要在单引号字符串中使用单引号,只需将其加倍(单引号的两倍,而不是双引号):

    select 'insert into owner.target_tbl values (' ||'''' || 'a string' ||''', ' || 2 ||');' as Query_column;
    
                         Query_column                     
    ------------------------------------------------------
    insert into owner.target_tbl values ('a string', 2);
    (1 row)
    
于 2013-03-26T08:57:22.157 回答
3

使用单引号而不是双引号:

=> 选择“富”|| 来自双重的“酒吧”;
错误:列“foo”不存在
=> 选择“富”|| 来自双重的“酒吧”;
 ?柱子?
----------
 富吧
(1 行)
于 2013-03-26T02:20:58.953 回答
1

建议:确保添加案例以包装可能的空值 - 如果连接序列的参数之一为空 - 你的结果将为空。

于 2013-03-26T11:50:39.607 回答