Oracle存储功能问题

时间:2013-10-03 23:02:41

标签: sql plsql oracle11g

我正在尝试在Oracle PL / SQL中构建一个存储函数,该函数将返回给定注册的最新租约日期。

我的功能如下:

CREATE OR REPLACE Function rec_date_sf(reg_in IN varchar2)
RETURN DATE
IS
  lv_max_date DATE;
Begin
  SELECT MAX(Date_Rent_Start)
    INTO lv_max_date
    FROM i_booking
   WHERE reg_in = registration;
   RETURN lv_max_date;
END;

我需要在SQL语句中调用该函数,因此我使用的是我知道的注册表:

SELECT rec_date_sf(date_rent_start), 
       registration
  FROM i_booking 
 WHERE registration = 'E246WFC';

这为rec_date_sf函数返回一个空白,而不是产生最大日期。

有人可以请注意这些代码并告诉我哪里出错了吗?

1 个答案:

答案 0 :(得分:0)

它看起来有点混乱:你将看起来像日期的东西传递给一个接受字符参数的函数。

也许你想要这样的东西?

SELECT rec_date_sf(registration) as date_rent_start, 
       registration
  FROM i_booking 
 WHERE registration = 'E246WFC';