我正在尝试从vertica数据库表中导出insert语句。我正在尝试创建一个生成插入语句但我遇到语法问题的查询。如何在Vertica中执行以下操作?
select "insert into owner.target_tbl values ( " ||"'"||a.Head_id||"',"||"'"||a.creation_dt||"',"||"'"||a.section"'"||");" as Query_column
from source_tbl a
答案 0 :(得分: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)
答案 1 :(得分:3)
使用单引号而不是双引号:
=> select "foo" || "bar" from dual; ERROR: column "foo" does not exist => select 'foo' || 'bar' from dual; ?column? ---------- foobar (1 row)
答案 2 :(得分:1)
建议:确保添加案例以包装可能的空值 - 如果连接序列的其中一个参数为null,则结果将为null。