错误:查询没有结果数据的目的地Dove:PL / pgSQL函数VOID

时间:2016-08-03 09:11:23

标签: postgresql

大家好我在PostgreSQL中遇到了这个函数的问题,我必须使用PostgreSQL语言。 所以代码是这样的:

CREATE OR REPLACE FUNCTION public.fnc_richiesta_attivazione_out_update_cdo(olo_rec_id INTEGER, current_uuid VARCHAR, requested_dco_date TIMESTAMP)
RETURNS VOID
AS
$$
DECLARE
   flag_no_pah VARCHAR := 'N';
   time_threshold INTEGER := 300;
   rda_inserted_status INTEGER := 14;
   invalid_status VARCHAR := 'N';
   last_time_requested INTEGER;
   limit_rows INTEGER;
   n_richieste INTEGER;
   capacita_max INTEGER;
   c_requests INTEGER;
   codice_olo_rec VARCHAR;
   num_max_req VARCHAR:= 'NUM_MAX_RICHIESTE_PER_FILE';

BEGIN
   SELECT valore INTO limit_rows FROM configurazione WHERE chiave = num_max_req;
   SELECT num_richieste INTO n_richieste FROM conta_rda_inv WHERE olo = olo_rec_id;
   SELECT codice_olo_amm INTO codice_olo_rec FROM configurazione_olo WHERE id = olo_rec_id;
   SELECT EXTRACT(EPOCH FROM (current_date - (SELECT ora_ultimo_invio FROM conta_rda_inv WHERE olo = olo_rec_id))) INTO last_time_requested;
   SELECT COUNT(id_richiesta) INTO c_requests FROM richieste WHERE id_lock = current_uuid;

   UPDATE richieste SET id_lock = current_uuid, data_cut_over_richiesta = requested_dco_date WHERE id_richiesta IN (
      SELECT id_richiesta
      FROM richieste
      WHERE   id_lock IS NULL AND
            codice_op_rec = codice_olo_rec AND
                  id_richiesta_stati = rda_inserted_status AND
                  flag_pah = flag_no_pah AND
                  (valido IS NULL OR valido <> invalid_status)
      ORDER BY ts_ins ASC
      LIMIT limit_rows
    --) RETURNING *;
    );

    IF (n_richieste > capacita_max*2) THEN
       UPDATE richieste SET id_lock = NULL WHERE id_lock = current_uuid;
    ELSIF (c_requests < limit_rows AND last_time_requested < time_threshold) THEN
       UPDATE richieste SET id_lock = NULL WHERE id_lock = current_uuid; 
    END IF;
END
$$
LANGUAGE plpgsql VOLATILE;

当我执行时:

  SELECT fnc_richiesta_attivazione_out_update_cdo(39, 'qqqqqqqq', '2016-08-03 23:00:00');

我收到错误:

  

[42601]错误:查询没有结果数据的目的地Dove:PL / pgSQL函数fnc_richiesta_attivazione_out_update_cdo(整数,字符变化,没有时区的时间戳)SQL语句第22行。

我无法解决错误,但如果我执行单个SELECT则可以解决

0 个答案:

没有答案
相关问题