1

こんにちは、私は 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を返したい...

4

2 に答える 2

2

問題は追加されていませんでした

;

選択の最後に

  SELECT  MAX(v.value_date)--compiler err
  INTO    v_date
  FROM    vat v 
  WHERE v.value_date < i_value_date ;
于 2011-05-05T14:16:07.493 に答える
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;

vat1 つのリスクは、より後の日付のレコードが に存在しない場合i_value_date、コードが失敗し、NO_DATA_FOUND例外がスローされることです。その状態をどのように処理するかを検討する必要があります。それが正しい場合は、処理しないでください。

于 2011-05-04T17:14:12.593 に答える