您好 我是oracle db的新手,我怎么能简单地询问最大日期?
FUNCTION get_max_date_rec(
i_value_date IN vat.value_date%TYPE := app_utilities_q.server_sys_date )
RETURN vat.rec_id%TYPE
IS
v_date vat.value_date%TYPE;
BEGIN
SELECT MAX(v.value_date)--compiler err
INTO v_date
FROM vat v
WHERE v.value_date < i_value_date
RETURN get_rec_by_date(v_date).rec_id;--compiler err
END get_max_date_rec;
修改 这是编译器创建的错误 错误(76,7):PL / SQL:忽略SQL语句 错误(81,7):PL / SQL:ORA-00933:SQL命令未正确结束
我想按照上面的说法返回rec_id ......
答案 0 :(得分:2)
FUNCTION get_max_date_rec(
i_value_date IN vat.value_date%TYPE
default app_utilities_q.server_sys_date -- assuming this is a default
)
RETURN vat.rec_id%TYPE
IS
v_date vat.value_date%TYPE;
BEGIN
SELECT MAX(v.value_date)--compiler err
INTO v_date
FROM vat v
WHERE v.value_date < i_value_date
RETURN v_date;
END get_max_date_rec;
如果日期大于vat
,i_value_date
中没有记录,则一个风险是,代码将失败,抛出NO_DATA_FOUND
异常。你应该考虑如何处理这种情况 - 或者不处理它,如果这是正确的事情。
答案 1 :(得分:2)
问题是 没有添加
;
在选择
的最后 SELECT MAX(v.value_date)--compiler err
INTO v_date
FROM vat v
WHERE v.value_date < i_value_date ;