首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建过程语言库

创建过程语言库
EN

Stack Overflow用户
提问于 2021-12-08 09:41:00
回答 1查看 310关注 0票数 0

当我启动应用程序时,我尝试创建一个postgresql过程。

代码语言:javascript
复制
Caused by: liquibase.exception.ValidationFailedException: Validation Failed:

我试图集成的过程(实数中的函数)如下:

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION schema_for_materialized_views.update_views() RETURNS VOID AS
$$
BEGIN

  refresh materialized view schema_for_materialized_views.first_view WITH no data;
  refresh materialized view schema_for_materialized_views.second_view WITH no data;
  refresh materialized view schema_for_materialized_views.first_view;
  refresh materialized view schema_for_materialized_views.second_view;

END;
$$
LANGUAGE plpgsql;

我试着把它放到一个标签中,一个引用到一个外部文件中,然后放到一个内部包含这个文件的文件中。我不知道怎么写才能让它起作用。所以如果有人有建议..。。

编辑:到目前为止,我尝试的4种主要转换集:

代码语言:javascript
复制
<changeSet  author="TS"  id="add_function">
    <createProcedure
            replaceIfExists="true"
            dbms="postgresql"
            schemaName="schema_for_materialized_views"
            path="db/changelog/update_results.sql"
            procedureName="update_views">
    </createProcedure>
</changeSet>
代码语言:javascript
复制
<changeSet  author="TS"  id="add_function">
    <sql dbms="postgresql">
      CREATE OR REPLACE FUNCTION schema_for_materialized_views.update_views() RETURNS VOID AS
    $$
    BEGIN

      refresh materialized view schema_for_materialized_views.first_view WITH no data;
      refresh materialized view schema_for_materialized_views.second_view WITH no data;
      refresh materialized view schema_for_materialized_views.first_view;
      refresh materialized view schema_for_materialized_views.second_view;

    END;
    $$
       LANGUAGE plpgsql;
   </sql>
</changeSet>
代码语言:javascript
复制
<changeSet  author="TS"  id="add_function">
    <createProcedure
            replaceIfExists="true"
            dbms="postgresql"
            schemaName="schema_for_materialized_views"
            procedureName="update_views">
      refresh materialized view schema_for_materialized_views.first_view WITH no data;
      refresh materialized view schema_for_materialized_views.second_view WITH no data;
      refresh materialized view schema_for_materialized_views.first_view;
      refresh materialized view schema_for_materialized_views.second_view;
   </createProcedure>
</changeSet>
代码语言:javascript
复制
<changeSet  author="TS"  id="add_function">
    <createProcedure
            replaceIfExists="true"
            dbms="postgresql"
            schemaName="schema_for_materialized_views"
            procedureName="update_views">
      CREATE OR REPLACE FUNCTION schema_for_materialized_views.update_views() RETURNS VOID AS
    $$
    BEGIN

      refresh materialized view schema_for_materialized_views.first_view WITH no data;
      refresh materialized view schema_for_materialized_views.second_view WITH no data;
      refresh materialized view schema_for_materialized_views.first_view;
      refresh materialized view schema_for_materialized_views.second_view;

    END;
    $$
       LANGUAGE plpgsql;
   </createProcedure>
</changeSet>
EN

回答 1

Stack Overflow用户

发布于 2021-12-08 15:55:37

最后在IRL的帮助下找到了它:

代码语言:javascript
复制
            replaceIfExists="true"  
            dbms="postgresql"  

不能一起工作。

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

https://stackoverflow.com/questions/70272802

复制
相关文章

相似问题

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