我正在尝试从 vertica 数据库表中获取插入语句导出。我正在尝试创建一个生成插入语句的查询,但我遇到了语法问题。如何在 Vertica 中执行以下操作?
select "insert into owner.target_tbl values ( " ||"'"||a.Head_id||"',"||"'"||a.creation_dt||"',"||"'"||a.section"'"||");" as Query_column
from source_tbl a
如果您用双引号引用名称,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)
使用单引号而不是双引号:
=> 选择“富”|| 来自双重的“酒吧”; 错误:列“foo”不存在 => 选择“富”|| 来自双重的“酒吧”; ?柱子? ---------- 富吧 (1 行)
建议:确保添加案例以包装可能的空值 - 如果连接序列的参数之一为空 - 你的结果将为空。