首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >plpython函数greenplum数据库中的Insert语句

plpython函数greenplum数据库中的Insert语句
EN

Stack Overflow用户
提问于 2018-06-29 14:29:02
回答 2查看 740关注 0票数 1

我正在greenplum中创建一个plpython函数。for plpy.prepare("INSERT INTO ....")失败并返回错误:

ERROR: plpy.SPIError: function cannot execute on segment because it issues a non-SELECT statement (plpython.c:4656) (seg4 slice1 den-gp5-seg03:40000 pid=119213) (cdbdisp.c:1322)

plpython函数中不允许插入吗?我在文档中看不到太多关于插入的帮助。greenplum plpython doc

EN

回答 2

Stack Overflow用户

发布于 2018-08-18 22:23:06

您可以使用plpy.execute("INSERT INTO ....")而不是plpy.prepare("INSERT INTO ....")

prepared statement使用plpy.prepare()。如果您想使用它,请参考下面的示例。

代码语言:javascript
复制
postgres=# create table your_table (yourstr char(2), yournum int);
CREATE TABLE
postgres=# do $$
postgres$# plan = plpy.prepare("insert into your_table values($1,$2)", ["text", "int"]);
postgres$# plpy.execute(plan, ["Gx", 7]);
postgres$# $$ language plpython3u;
DO
postgres=# select * from your_table;
 yourstr | yournum 
---------+---------
 Gx      |       7
(1 row)
postgres=# 

Here are available pypl functions (Greenplum 5.10 doc here)

票数 1
EN

Stack Overflow用户

发布于 2018-06-30 12:52:04

我不确定insert是否可以在这里工作;将insert语句放在gp函数中,然后从plpython func中触发"select my_func(arg1,arg2)“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51095563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档