【问题标题】:Greenplum anonymous code block error?Greenplum匿名代码块错误?
【发布时间】: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 实例/模式对象使用?

【问题讨论】:

    标签: postgresql 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 没有任何好处。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 2021-05-22
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多