如何在 postgresql 中创建包含 dblink 的 MVIEW

Posted

技术标签:

【中文标题】如何在 postgresql 中创建包含 dblink 的 MVIEW【英文标题】:How to create MVIEW containing dblink in postgresql 【发布时间】:2020-09-21 19:48:44 【问题描述】:

我从 oracle 数据库中提取 MVIEW 语句并在 postgresql db 中执行这些语句。

我得到以下错误:

错误:“@”处或附近的语法错误。 MVIEW 语句的语法是:CREATE Materialized view XYS as select ***** from target@dblink.

我不确定 postgresql mview 是否识别或解析 '@' 符号。请帮忙。

请帮忙。

【问题讨论】:

【参考方案1】:

SQL 是标准化的,但每个数据库都有自己的方言,所以不能指望非标准的 SQL 语句从 Oracle 移植到 PostgreSQL。

您将在 PostgreSQL 中使用外部表而不是使用数据库链接,因此根据目标表的位置,您将安装 postgres_fdw 或 oracle_fdw。

此外,CREATE MATERIALIZED VIEW 语句在 PostgreSQL 和 Oracle 中有所不同。 PostgreSQL 在 Oracle 中只有所谓的 REFRESH COMPLETE ON DEMAND,所以您可能需要重新设计一点。

【讨论】:

以上是关于如何在 postgresql 中创建包含 dblink 的 MVIEW的主要内容,如果未能解决你的问题,请参考以下文章

如何在 postgresql 中创建只读视图,类似于 oracle?

在 Postgresql 中创建一个数量递增的列

sql 如何在PostgreSQL中创建只读用户

如何在 PostgreSQL 中创建临时函数?

如何在 postgreSQL 中创建 generate_series 函数?

如何使用 PostgreSQL 在 DBeaver 中创建自动递增/SERIAL id 列?