首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在plpgsql中使用变量内部函数

如何在plpgsql中使用变量内部函数
EN

Stack Overflow用户
提问于 2017-06-22 11:03:04
回答 1查看 513关注 0票数 0

我正在将一个来自触发器的值存储到函数中的一个变量中,当我使用function.Below中的变量是我的函数和触发器时,我得到了一个错误

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION 
edm.automated_builder_update_trigger_manual()
RETURNS trigger AS
$BODY$
DECLARE
    e record;
    weekly_permit_table text := TG_ARGV[0];
BEGIN


Update  edm.weekly_permit_table as a
set applicant = applicant||' '||'-'||' '||new.builder where 
old.permit_number = split_part(a.permit_details, ' ',1);


RETURN NULL;
END;

还有我的扳机

代码语言:javascript
复制
CREATE TRIGGER builder_update_trigger_manual
 AFTER UPDATE
 ON edm.permit_table_manual_05_2017
 FOR EACH ROW
 WHEN (((old.builder)::text IS DISTINCT FROM (new.builder)::text))
 EXECUTE PROCEDURE 
edm.automated_builder_update_trigger_manual('weekly_permit_report_05_2017');

当我更新'edm.permit_table_manual_05_2017‘表中的构建器值时,正在获取错误’错误:关系edm.weekly_permit_table不存在‘

我知道这可能很傻。但我不知道我哪里错了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-23 07:54:41

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION edm.automated_builder_update_trigger_manual()
RETURNS trigger AS
$BODY$
DECLARE
  e record;
  weekly_permit_table text := TG_ARGV[0];
BEGIN
  EXECUTE 
    format(
      $q$
        UPDATE edm.%I AS a SET
          applicant = concat(applicant,' - '||$1)
        WHERE 
          $2 = split_part(a.permit_details, ' ',1)$q$,
      weekly_permit_table)
    USING NEW.builder, OLD.permit_number;
  RETURN NULL;
END $BODY$;

EXECUTE

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

https://stackoverflow.com/questions/44697520

复制
相关文章

相似问题

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