Greenplum匿名代码块错误?

Posted

技术标签:

【中文标题】Greenplum匿名代码块错误?【英文标题】:Greenplum anonymous code block error? 【发布时间】:2013-11-09 02:23:59 【问题描述】:

我们在 Greenplum 中有一个带有 Postgres 版本 8.2 的模式,我们不允许在其中创建函数。我们在另一个服务器/模式中有一些工作功能。我们喜欢以匿名代码块的形式在新模式中运行这些函数。我们在 pgadmin(Gui 界面)和命令行 psql 中尝试了以下操作。我们遇到了一个错误。

这是尝试过的代码。

do $$
  declare
    at1 text;
    ftxt varchar(50) := ‘How are you?’ ;
  begin
    RAISE NOTICE ‘Hello World ‘ || ftxt ;
  end;
$$;

它不接受“做”。这就是错误所在。我需要您的指导才能完成这项工作。

是否有像 Oracle 的 DB 链接这样的机制可以跨 greenplum 实例/模式对象使用?

【问题讨论】:

【参考方案1】:

Greenplum 不是 PostgreSQL,它是基于 PostgreSQL 8.2 的独立产品。

DO 在 PostgreSQL 9.0 中被添加。所以这不适用于Greenplum。您必须创建然后执行一个函数。如果您没有权限这样做,那您只是运气不好,您不能使用 PL/PgSQL。

PostgreSQL 支持跨数据库连接的DBLink(参见文档中的dblink)。我不知道Greenplum是否支持它。


在未来的问题中确保:

您标记他们greenplum 以及postgresql 如果您遇到错误,您提供错误消息的确切文本

感谢您提供代码并提及您使用的是 PostgreSQL 和 Greenplum。

【讨论】:

感谢您的回复/建议。 DBLINK 指向 PostgreSQL 9.0。 DBLINK 在 PostgreSQL 8.2 中可用吗? @user2647763 实际上,该链接指向 /current/ 版本文档。看到顶部的版本链接了吗?单击 8.2 的那个。如果 8.2 没有出现在列表中(它不用于 dblink),那么该文档页面在 8.2 中不存在。所以 dblink 不是 8.2 中的内置 contrib;它可能已作为外部 3rd 方模块提供,但这可能对 Greenplum 没有任何好处。

以上是关于Greenplum匿名代码块错误?的主要内容,如果未能解决你的问题,请参考以下文章

Pl/pgSQL 匿名代码块在 [42601] 错误上失败:查询没有结果数据的目的地

如何使用此代码添加匿名块

匿名块和过程中出现的问题

Java 重学系列之匿名代码块和静态代码块区别

Java 重学系列之匿名代码块和静态代码块区别

匿名对象,封装,构造代码块静态代码块内部类匿名内部类