Sql Oracle存储函数的问题
我试图在Oracle PL/SQL中构建一个存储函数,该函数将返回给定注册的最新租用日期 我的职能如下:Sql Oracle存储函数的问题,sql,plsql,oracle11g,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 = registrat
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\u date\u sf
函数返回一个空白,而不是生成最大日期
有人能看看这段代码并告诉我哪里出了问题吗?看起来有点混乱:您正在将看起来像日期的内容传递给接收字符参数的函数 也许你想要这样的东西
SELECT rec_date_sf(registration) as date_rent_start,
registration
FROM i_booking
WHERE registration = 'E246WFC';
只是一个建议-不要混用SQL PL/SQL语言 像那样。你可能会遇到非常令人惊讶的问题。不仅在性能方面,而且查询可能返回错误的结果。或者至少使用
可序列化隔离级别
。