首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Postgres 8.2函数中传递参数会导致数组错误

在Postgres 8.2函数中传递参数会导致数组错误
EN

Stack Overflow用户
提问于 2015-03-20 23:10:47
回答 1查看 127关注 0票数 0

我有这个函数

代码语言:javascript
运行
复制
/*
@Function: valiDates [Avoid inserting data from invalid dates]
@Purpose: Providing a _TABLE and a date _COLUMN to be validated.
Given a _DATE (from script name) validate that a certain % of data (_TOLERANCE) belongs to the _INTERVAL of days specified.
*/

CREATE OR REPLACE FUNCTION valiDates(_date date, _table regclass, _column text, _interval integer,  _tolerance real) RETURNS BOOLEAN AS
$$
DECLARE result boolean;
BEGIN
    EXECUTE 'SELECT
            (SELECT count(*) FROM ' || _table::regclass || '
             WHERE ' || _column || ' BETWEEN '''|| _date || '''::date and ''' || _date || '''::date + INTERVAL ''' ||  _interval || 'days'')'
                        || '/
            (SELECT COUNT(*) FROM ' || _table::regclass || ')::real
         > ' || _tolerance
    INTO result;
    RETURN result;
END
;
$$ LANGUAGE plpgsql;

它实际上在我的PostgreSQL环境版本9.1.13中工作,但当我试图在开发服务器(PostgreSQL 8.2)上调用这个函数时,出现以下错误:

array value must start with "{" or dimension information

它应该像官方documentation page中描述的那样在8.2版本上工作。

这就是我调用函数的方式:

代码语言:javascript
运行
复制
select valiDates('2015-03-01','_table','_date',1,0.8);

我真的不知道如何修复它,我已经尝试过用'_table'::regclass调用函数,但也不起作用。

EN

Stack Overflow用户

发布于 2015-03-26 02:01:19

谢谢你Erwin的建议,我接受了大部分的建议。最后,我意识到,由于_table参数(regclass类型),它需要一个数组,我只需要更改它或一个字符串(text)。

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

https://stackoverflow.com/questions/29169815

复制
相关文章

相似问题

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