Greenplum 4.3不支持这种“USING”语法

时间:2016-02-02 02:14:45

标签: greenplum postgresql-8.2

(mutable-array #[0 2 0 2 3 0 1])

Greenplum(基于Postgres 8.2)不支持这种'使用'语法,如何在Greenplum 4.3中使用此运算符

错误信息:

  

错误:“使用”第1行或附近的语法错误:... LECT'INSERT INTO   '|| 1美元||'价值(($ 1)。)'使用$ 2                                                                ^ QUERY:选择'INSERT INTO'|| 1美元||'价值(($ 1)。)'使用$ 2   CONTEXT:PL / PgSQL函数中的SQL语句“dp_insert_trigger”附近   第13行

2 个答案:

答案 0 :(得分:0)

Greenplum中的动态SQL需要创建整个SQL语句,并且它不支持使用new"。

v_sql := 'insert into ' || p_target_table_name || ' (col1, col2, col3) ' || 
         'select col1, col2, col3 from ' || p_source_table_name;

execute v_sql;

在Greenplum中应避免使用单例插入语句,因为它非常慢。相反,做批量操作。这种功能的缺失从未出现过,因为非常不鼓励逐行插入表格,因此不需要这个功能。

答案 1 :(得分:-1)

版本8.4中引入了动态命令的USING子句。在8.2中,您必须使用字符串连接和quote_literal()quote_identifier()quote_nullable()函数将字符串与其所有动态部分组合在一起。

PG 8.2 is unsupported since December 2011甚至可敬的8.4超过其生命周期超过18个月。你应该真的升级。