如何在PostgreSQL中将自定义类型的多维数组作为函数参数传递?

藤蔓

我做了一个简单的自定义类型:

CREATE TYPE public."FriendDetails" AS
   ("Email" character varying,
    "Name" character varying);
ALTER TYPE public."FriendDetails"
  OWNER TO postgres;

在以下函数中使用(它仅返回一个字符串- contact!):

CREATE OR REPLACE FUNCTION public."addFriend"(
    "GroupName" character varying,
    friends "FriendDetails"[])
  RETURNS character varying AS
$BODY$BEGIN
    RETURN "contact!";
END;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public."addFriend"(character varying, "FriendDetails"[])
  OWNER TO postgres;

上面的代码是使用pgAdminIII生成的。

我试图查询它,如下所示:

select addFriend('Champs',ARRAY[['qwe','asd'],['zxc','rty']]::public."FriendDetails"[]);

并得到一个错误:

ERROR:  malformed record literal: "qwe"
LINE 1: select addFriend('Champs',ARRAY[['qwe','asd'],['zxc','rty']]...
                                         ^
DETAIL:  Missing left parenthesis.
********** Error **********

ERROR: malformed record literal: "qwe"
SQL state: 22P02
Detail: Missing left parenthesis.
Character: 34

我尝试替换大括号({}),并丢失了大括号ARRAY,但似乎无济于事-它们会导致语法错误。

有人可以好心地说明使用(1)花括号和(2)ARRAY构造函数来调用该方法的语法

阿贝里斯托

您的代码中有错误:

将圆括号用于行/记录类型常量

ARRAY[('qwe','asd'),('zxc','rty')]

在函数名称中添加双引号:

select "addFriend"('Champs',ARRAY[('qwe','asd'),('zxc','rty')]::public."FriendDetails"[]);

对字符串常量使用单引号:

RETURN 'contact!';

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Swift中将自定义类型作为返回函数?

在 API Retrofit PUT 调用中将自定义对象数组作为参数传递

将自定义C ++类型作为QML函数参数传递

如何将自定义类型作为参数传递给已编译的cmdlet?

如何在反应中将自定义onClick函数从父级传递给子级

如何在GO中将任意大小的多维数组作为函数参数传递

自定义类型传递给函数作为参数

如何在Documentum作业方法中将自定义参数与标准参数一起传递

Lambda表达式,如何在自定义方法中将方法作为参数传递

如何在自定义ImageView中将R.Drawable作为参数传递

自定义类型作为参数传递

如何在Python 3中将参数传递给自定义静态类型提示?

如何在Symfony4中将参数传递给自定义的教义类型

如何在传递对象作为参数的同时解析自定义类型

如何在Postgres C函数中将数组返回为具有自定义类型的数组?

如何在 postgresql 9.6 中将 json 数组作为函数参数传递

如何在Python中将参数传递给自定义JSONEncoder default()函数

如何在Golang中将泛型类型的数组作为函数的参数传递

作为参数传递时,如何在多个自定义函数中处理Pandas DataFrame?

如果将自定义类型作为const从C ++传递,如何向QML注册自定义类型

如何在JavaScript中将自调用函数作为函数参数传递?

如何在swiftui中将自定义图像作为navigationBarItem插入

如何在Openbox中将自定义脚本作为屏幕保护程序运行?

如何在 MVVM 中将自定义侦听器从 Fragment 传递到 VM?

如何在F#中将自定义日期格式传递给CsvProvider

表单 - 如何在 Symfony 4 中将自定义选项传递给 CollectionType 子项

如何在Azure AD App中将自定义属性传递给重定向URL?

如何在Azure Functions中将自定义参数绑定与依赖项注入混合使用?

如何将自定义参数传递给应用