これが私のシナリオです: 私は、1 つの属性 (給与) だけを考慮する必要があるテーブル Employees を持っています。他のすべての属性は、演習を行うために必要ありません。別のテーブル (least_earners) を作成し、このテーブル内に (ユーザーから入力された) 従業員の最後の n 人を挿入する必要があります。
私はこれを行いましたが、大丈夫かどうか、または間違いを犯したかどうかを知りたいです (私は Oracle DB と PL/SQL を使用しています)。オブジェクトの前に作成せずにテーブルを作成することは可能ですか? SQL での通常の作成と同じように機能しますか?
DECLARE
bottom_n_salaries
NUMBER := &bottom_salaries;
CURSOR emp_cursor IS
SELECT DISTINCT salary
FROM employees
ORDER BY salary ASC;
CREATE TYPE least_earners_obj
AS OBJECT (salary NUMBER(8));
CREATE TYPE least_earners
AS TABLE OF least_earners_obj;
BEGIN
OPEN emp_cursor;
LOOP
INSERT INTO least_earners
VALUE(FETCH emp_cursor);
EXIT WHEN emp_cursor%ROWCOUNT >bottom_n_salaries
OR emp_cursor%NOTFOUND;
END LOOP;
CLOSE emp_cursor;
END;