2016-06-13 75 views
0

我在PostgreSQL如何在PostgreSQL中將函數的返回值設置爲變量?

CREATE OR REPLACE FUNCTION verificar2 (rooms INT[], fecha_I DATE, fecha_F DATE) RETURNS BOOLEAN AS $verificar_Fechas$ 
DECLARE 
    reg INT; 
    size int := array_length(rooms,1); --Get the size of the array to search one by one 
    x int; --for counting the reservations available 
BEGIN 
    FOR reg IN 1..size 
    loop 
     SELECT count(*) INTO x 
     FROM 
      reservacion r 
      INNER JOIN rh ON (r.num_reservacion=rh.num_reservacion) 
      INNER JOIN habitacion h ON (h.num_habitacion=rh.num_habitacion) 
     where h.num_habitacion=rooms[reg] 
      and not 
      (fecha_F BETWEEN r.fecha_entrada AND r.fecha_salida 
      or 
      fecha_I BETWEEN r.fecha_entrada AND r.fecha_salida 
      or 
      fecha_I < r.fecha_Entrada and fecha_F > r.fecha_salida 
      ); 

     IF x = 0 Then 
      return false; 
     ELSE 
      return true; 
     END IF; 
    end loop; 
END; 
$verificar_Fechas$ LANGUAGE plpgsql; 

這個功能,我有以下變量 validReservations布爾另一個功能;

我需要的第一個函數的返回值設置爲變量,我想這樣做

validR := verificar2 (rooms, fecha_entrada, fecha_salida); 

但它沒有工作,我需要做一個驗證。你可以幫我嗎?

+0

你在哪裏嘗試做?在其他功能?給一個代碼然後 –

+1

「*但它沒有工作*」不是一個有效的Postgres錯誤消息。 –

回答

0

與SELECT INTO試試:

SELECT * INTO validReservations FROM verificar2 (rooms, fecha_entrada, fecha_salida); 

這將 「選擇」 返回值到您的變量。

相關問題