0

「コード」の最後の値を取得する必要がある学校の割り当てを行っているため、このコードをインクリメントして次の行を挿入できます。こんな感じで引っ張り出してみました。

DECLARE

   v_last_code f_shifts.code%TYPE;

BEGIN

   SELECT LAST_VALUE(code) OVER (ORDER BY code)
   INTO v_last_code
   FROM f_shifts;

   DBMS_OUTPUT.PUT_LINE('Last value is: ' || v_last_code);

END;

しかし、私は取得ORA-01422: exact fetch returns more than one requested number of rows し、last_valueが複数の行になる理由と方法がわかりません

ありがとう !

4

1 に答える 1

0

このように、ネストされたテーブルを使用できます。

DECLARE
   v_last_code f_shifts.code%TYPE;
   TYPE t_tbl IS TABLE OF f_shifts.code%TYPE;
      -- Above line creates the nested table type of the required type.
   v_tbl T_TBL;
      -- Above line creates the nested table variable.
BEGIN

   SELECT code
   BULK COLLECT INTO v_tbl -- collects all the values, ordered, into the nested table
   FROM f_shifts
   ORDER BY code;

   v_last_code = v_tbl(v_tbl.LAST); -- gets the last values and puts into the variable

   DBMS_OUTPUT.PUT_LINE('Last value is: ' || v_last_code);

END;
/
于 2013-03-19T11:01:30.537 に答える