pl-sql如何执行一个简单的max(Date)函数



你好我是oracledb的新手,怎么能简单地要求最长日期呢?

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返回为上面的writen。。。

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异常。你应该考虑一下你可能希望如何处理这种情况——或者不处理它,如果这是正确的做法的话

问题是不添加

;

在选择的最后

  SELECT  MAX(v.value_date)--compiler err
  INTO    v_date
  FROM    vat v 
  WHERE v.value_date < i_value_date ;

相关内容

  • 没有找到相关文章

最新更新