我想从Vertica数据库表中获取插入语句导出。我试图创建一个生成插入语句的查询,但我遇到了语法问题。我如何在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数据库表中获取插入语句导出。我试图创建一个生成插入语句的查询,但我遇到了语法问题。我如何在Vertica中执行下面的操作?Vertica中的连接列不起作用
select "insert into owner.target_tbl values (" ||"'"||a.Head_id||"',"||"'"||a.creation_dt||"',"||"'"||a.section"'"||");" as Query_column
from source_tbl a
使用单引号不是双引号:
=> select "foo" || "bar" from dual; ERROR: column "foo" does not exist => select 'foo' || 'bar' from dual; ?column? ---------- foobar (1 row)
如果引用用双引号的名称,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)
建议:确保你补充的情况下包裹起来可能为空值 - 如果参数之一concatenatio n序列为空 - 您的结果将为空。
如何处理空值? – 2018-01-25 01:28:28
问题是生成的插入语句不起作用,或者生成的语句本身不起作用?你从Vertica导出插入什么?你有netezza标签,如果是NZ,你不应该逐行插入。 – 2013-03-25 20:26:15
我绝对确定“* a amexperiencing syntax issues *”是**不是** Vertica中的有效错误消息。请发布确切的错误消息和作为查询结果的SQL语句。 – 2013-03-26 09:14:09