plpgsql

    0热度

    1回答

    我需要返回一条消息(根据de函数内部的一些评估的不同消息),但是当我调用该函数时,它会返回此错误消息:“返回类型未知与列2中预期的类型字符不匹配”。 CREATE OR REPLACE FUNCTION myfunction()RETURNS TABLE( cod INTEGER, answ CHARACTER VARYING ) AS $BODY$ BEGIN RETURN QUERY

    0热度

    2回答

    我已经在Postgres中获得了PostGIS的PostGIS数据库中的点数据,并且我想将几个地理上不同区域中的点提取为CSV文件,每个区域一个文件。 我已成立了一个area表面积的多边形,而且面积冠军,我想有效地通过该表圈,使用类似的PostGIS' st_intersects()选择数据在每个CSV文件中去,并得到文件名用于区域表中标题的CSV文件。 我对做交叉码和设置CSV输出的细节感到满意

    1热度

    1回答

    措辞不佳的冠军,但我想不出一个简洁的方式来描述我的问题。 我有下面的表: year | month | basin_id | value 我需要的数值为一年/月的所有basin_ids并从另一年/月的所有basin_ids的相应值中减去,并以这样的方式存储结果值,使得它们仍然与它们各自的basin_id相关联。 这似乎是它应该是一个相当简单的查询/子查询,我可以计算值只是细微的差别: SELE

    0热度

    1回答

    我需要一个相当于SQL Server函数convert的Postgres函数。最后我写一个函数 CREATE OR REPLACE FUNCTION convert (target VARCHAR(50),source ANYELEMENT,style INT) RETURNS ANYELEMENT AS $$ BEGIN CASE when style=0

    2热度

    1回答

    我需要动态地构造和执行UPDATE语句。然后我需要测试是否有任何更新。我的代码如下: DECLARE v_table_name text; v_column_name text; v_debug_flag boolean; v_upd_stmt text; BEGIN select nm_table_name, replace(nm_table_

    1热度

    1回答

    我在postgres sql function中遇到了一个问题,当整数数组为空时,我需要返回所有记录。 现在我正在使用dynamic sql来实现它012yb检查数组是否为空,所以不要在查询中concat in statement。 我想知道是否有另一种方式来实现它没有dynamic sql? 例如使用动态SQL: CREATE OR REPLACE FUNCTION testme() RETUR

    -1热度

    1回答

    我传递一个类型创建一个存储过程,做一个循环的过程中,这样我可以将每个信息类型 这是我喜欢的类型 create type leketo as(id integer, name text); 功能将行插入我喜欢的类型 CREATE OR REPLACE FUNCTION getLeketo() RETURNS SETOF leketo AS $BODY$ declare l lek

    0热度

    2回答

    select to_date('20170202','YYYYMMDD'); 回报: 2017-02-02 但是当我做: select to_date('20172202','YYYYMMDD'); 输出为: 2018-10-04 月份时是错的,为什么不返回一个错误如在甲骨文?

    0热度

    1回答

    我在处理plpgsql和RECORD类型时遇到了问题。 有谁知道一种方法来简单地测试返回的记录类型,以知道它是否设置? 基本模式: 甲函数返回一个记录,并在那里它可以是未固化的(即,选择到没有记录返回)或它被设置为一个单个记录。 create or replace function blah() returns RECORD as $$ declare rec RECORD; be

    0热度

    1回答

    我正在寻找一种方法来创建一个函数,该函数需要用户名和密码的两个参数并使用它创建一个只读角色。我已经试过类似: create or replace function create_user_readonly ( unm varchar, pwd varchar ) returns varchar(10) as $$ begin create role u