我必須將員工表中的最后 5 個員工 ID 存盤到一個陣列中。我使查詢正確并且我有陣列,但我無法理解將結果存盤在該陣列中的語法。這是我的代碼
type tip_cod IS VARRAY(20) OF NUMBER;
coduri tip_cod := tip_cod(6);
這是我的查詢
SELECT employee_id FROM (
SELECT employee_id from employees
where commission_pct IS NULL
order by salary asc)
WHERE ROWNUM < 6;
如何將查詢的結果存盤在陣列中?因為我需要在另一個查詢中更新這些值。我知道這可以通過子查詢以更簡單的方式完成,但我這樣做是為了更好地理解 sql 中陣列的概念
uj5u.com熱心網友回復:
假設您使用的是 Oracle,那么您可以使用 PL/SQL 塊:
DECLARE
TYPE tip_cod IS VARRAY(20) OF NUMBER;
coduri tip_cod;
BEGIN
SELECT employee_id
BULK COLLECT INTO coduri
FROM (
SELECT employee_id
from employees
where commission_pct IS NULL
order by salary asc
)
WHERE ROWNUM < 6;
-- Do something with coduri
FOR i IN 1 .. coduri.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(coduri(i));
END LOOP;
END;
/
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/361922.html
標籤:sql 甲骨文 oracle-sqldeveloper
