- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 postgres 8.4 中的 set-returning 函数中选择数组,但收到错误:
“数组值必须以”{“或维度信息”开头。
这个问题有时似乎与 locationnodes.rs_people_c 有关有一个空数组。我试图通过 COALESCE 语句来解决这个问题。运气不好。
函数:
CREATE OR REPLACE FUNCTION fn_matview_location_slots (
week_start DATE
) RETURNS setof matview_location_slots_info AS
$$
DECLARE
resulter matview_location_slots_info%ROWTYPE;
BEGIN
FOR resulter IN
SELECT
rs_node AS node,
rs_date AS dater,
...
COALESCE(rs_people_c, '{}'::INTEGER[]) AS people,
rs_location AS location
FROM
locationnodes
WHERE
rs_date >= week_start
LOOP
RETURN NEXT resulter;
END LOOP;
END; $$ LANGUAGE plpgsql;
类型:
CREATE TYPE matview_location_slots_info AS (
node VARCHAR,
dater DATE,
...
people INTEGER[],
location INTEGER[]
);
数据
select rs_people_c from locationnodes;
rs_people_c
-------------------------------------
{}
{}
{731}
{32}
{31}
{}
{62}
{540,72,69,53,37,42,201,51,58}
{64}
最佳答案
我犯了一个愚蠢的类型定义错误(我从我最初的问题中排除了这个错误,但 Grzegorz 提到了——谢谢 Grzegorz)。
我将此发布为对 数组值必须以“{”或维度信息开头 问题进行谷歌搜索的任何人的答案。
在我的例子中,问题是位置返回类型被定义为一个整数数组,但该函数返回一个简单的整数。不幸的是,Postgres 没有提供有关这些情况下特定问题的更多信息。
另请注意,在这种情况下,您不需要像我在问题中所做的那样将 NULL 数组合并为 {}。
简而言之:确保您的数组返回类型正在接收数组输入!
关于Postgresql:在 set-returning plpgsql 函数中选择数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6917718/
我声明我对对象问题的回答是"is",在我的情况下很方便,但我在这里问专家。 我开发了很多 plpgsql 函数,只有一个是用 C 语言开发的,但我已经明白学习曲线肯定更倾斜。 在可能的情况下,我需要一
我已经用谷歌搜索了很多,并且我有相当不错的阅读理解能力,但我不明白这个脚本是否可以在我的 postgres/postgis 盒子上的多个线程中工作。这是代码: Do $do$ DECLARE
我有一个名为 test 的表,我按名为 daterange 的范围的上限对它进行排序。我想获取此排序数据的顺序并将其保存在名为 bc_order 的同一表的另一列中。 排序的顺序必须保存在bc_ord
我在 Postgres 9.5 数据库中有以下表格: 产品 Column | Type |
我正在使用 PostgreSQL。 我需要使用 PLPGSQL 语言的存储过程,它将返回表 (SET OF RECORDS),其中包含来自 my_table 的前 2 个和后 2 个结果的计数。 例如
我想在我的应用程序中实现分页。我创建了返回记录数作为输出参数和引用游标数据本身的存储过程(具有限制和偏移量)但作为结果——我得到了——“由于 OUT 参数,函数结果类型必须是 bigint” 据我所知
我在数据库后端使用 Postgres 9.3 的报告中有以下相当简单的查询: SELECT * FROM source JOIN sourcelevel USING (source_id) JOIN
我曾经在邮件列表中读过这个条目 http://archives.postgresql.org/pgsql-hackers/2005-06/msg01481.php SELECT * FROM foo_
例如。 --Assigning value to variable in function as a parameter. create or replace function f1(number i
我正在尝试将记录或 json 存储到数组中并从函数返回 JSON: CREATE OR REPLACE FUNCTION stat_per_day() RETURNS json AS $$ DECLA
我正在尝试创建选择数据、处理并返回它们的过程,但我正在努力如何为多列定义数组变量。 这个有效: CREATE OR REPLACE FUNCTION testing_array_return() RE
为了能够在一个数据库中创建应用程序的不同实例,例如测试阶段,我想使用变量作为模式名称。创建表或序列时一切正常,但我想不出一种在函数内部使用变量的优雅方法。我已经阅读了一些文章关于美元引用的字符串常量,
我有一个表“消息”。对于每个 INSERT'ed 行,我必须在同一个表“消息”(用于群发邮件)中插入该行的多个副本。我为它创建了一个触发器(例如一个副本)。 CREATE OR REPLACE FUN
我想在一个函数中以两种不同的方式查找数据,并在找到结果后立即返回。 首先我想运行一个查询; select * from company where company.id = x 然后,如果没有返回结果
我正在将 postgres 与 postgis 结合使用,并且我有一个包含几何数据的表格。现在我想在 plpgsql 中编写一个循环遍历行并将每个几何值存储在数组中的过程。 我应该使用什么返回类型来返
create function dept_count (dept_name varchar(20)) returns integer as $$ begin declare d_count integ
我刚刚开始使用 postgres 并且对整个事情都是陌生的,我正在使用 postgres 9.6 版并试图创建一个新函数但是我不断收到错误 ERROR: syntax error at or near
有没有一种方法可以加速我们的 plpgsql 函数,该函数在循环执行的一个查询中计算某些类型的文档?全部在一个查询中? validador := (select count(id_doc) from
我已经编写了以下函数,但是当我运行它时它没有返回任何内容。有人可以帮助确定问题吗? CREATE OR REPLACE FUNCTION GenerateReadableRandomString (
我有 Postgresql 8.4 我有一个用户表 user_id INT, user_name VARCHAR(255), user_email VARCHAR(255), user_salt VA
我是一名优秀的程序员,十分优秀!