当前位置: 首页 > 知识库问答 >
问题:

在PostgreSQL中处理自定义类型,并将它们用作函数中的参数

方宏才
2023-03-14

请帮帮我,为什么我得到的错误函数不存在?

[2018-10-31 12:31:05][42883]错误:函数companytester(bigint,未知,未知,未知)不存在

提示:没有与给定名称和参数类型匹配的函数。您可能需要添加显式类型转换。

CREATE OR REPLACE FUNCTION companyTester(founder Founder) RETURNS BOOLEAN AS $$

BEGIN

    RAISE NOTICE 'Founder id: %',founder.founder_id;
    RAISE NOTICE 'Founder FirstName: %',founder.firstname;
    RAISE NOTICE 'Founder LastName: %',founder.lastname;
    RAISE NOTICE 'Founder email: %',founder.email;
    RAISE NOTICE 'Founder password %',founder.f_password;

END;

$$ LANGUAGE plpgsql;



 SELECT companyTester(76565445354,'Maks','Burkov','Maks.Burkov88@gmail.com','+_@Maks88;

CREATE TYPE Founder AS (
  founder_id BIGINT,
  firstname VARCHAR(150),
  lastname VARCHAR(150),
  email VARCHAR(50),
  f_password VARCHAR(50)
);

共有1个答案

邵星河
2023-03-14

您正在向函数传递5个参数,但它被声明为只接受一个参数(类型为founder

您需要一个行构造函数来创建founder的适当实例,从而只传递一个参数:

SELECT companyTester(
             (76565445354,'Maks','Burkov','Maks.Burkov88@gmail.com','+_@Maks88')::founder
       );

表达式(76565445354,'Maks','Burkov','Maks.Burkov88@gmail.com','_@Maks88')::founder是一个值

或者,您可以使用:

SELECT companyTester(row(76565445354,'Maks','Burkov','Maks.Burkov88@gmail.com','+_@Maks88'));
 类似资料:
  • 问题内容: 我发现这篇文章: http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions 我正在尝试以它为我的功能的示例。我正在从不同的表中选择不同的列,并试图返回一组记录。 这是我的代码: 当我尝试编译此代码时,出现错误,提示“ widgetdetails”类型不存在。与Wiki

  • 问题内容: 当我定义一个自定义类型时,基础类型的类型似乎对我是否可以按原样将其传递给函数还是需要对其进行转换有所不同。 问题是: 为什么和起作用,但不起作用? https://play.golang.org/p/buKNkrg5y- 在这里,当我运行此函数时,它会抱怨,尽管它是基础类型。但是当我打电话或他们成功运行时。 问题答案: 和 您的新类型是2种不同的不同类型。在预期的地方,您必须传递typ

  • 我有例外: 组织。postgresql。util。PSQLException:错误:运算符不存在:uuid=bytea 提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。 我有JPA实体 Id类 此外,转换器: 看起来,转换器根本不工作(我在转换器方法中设置了断点,但什么也没发生,调试器并没有进入那个里)。

  • 问题内容: 我看到了有关一个不相关问题的一些代码,但它使我感到好奇,因为我从未见过Java Generics这样的构造。创建可以将自身或自身后代用作类型参数的泛型类的用途是什么。这是示例: 首先想到的是一个以列表为参数的列表。使用此代码感到很奇怪,如何声明A类型的变量?递归声明! 这还行吗?如果是这样,您在代码中看到过吗?如何使用? 编辑 确实,事实证明我的问题与这个问题相同,只是用不同的措词,但

  • 我正在为一个项目试验Apache Flink。我正在使用 Flink 来聚合一系列传感器捕获的环境数据。为了计算空气质量指数,我正在尝试实现一个自定义聚合函数,以便在带有窗口的分组选择中使用,但我对类型提示有问题。下面是带有 DataTypeHint 注释的函数代码: 但我有以下例外: 我做错了什么?

  • 问题内容: ./chains.go:26:10:不能在作业中使用UpperCaseHandler(typefunc(asl.MessageDelivery))作为asl.MessageHandler类型./chains.go:37:86:无法使用RepeatHandler(类型func(asl.MessageDelivery))与Repeater.ConsumeFunc的参数中的asl.Messa