只是理論上的問題:我可以告訴PLSQL集合中刪除了來自修剪的PLSQL集合的最後一個元素嗎?
嵌套表可以變得稀疏由於缺失,可以通過從first
跨越next
S IN索引序列創始孔直到last
證明。 但是,如果last
索引被刪除,那麼收集範圍與刪除last
索引時完全相同(或者如果集合從未擴展到該索引)。 有什麼辦法可以區分這種差異嗎?
declare
type ct is table of varchar2(200);
a ct := ct('x','y','z');
b ct := ct('x','y','z');
begin
a.delete(3);
b.trim();
-- first=1, last=2, count=2 here for both a and b
a(3) := 'l'; -- legal since delete keeps room for 3rd element extended
--b(3) := 'l'; -- illegal since trim is inversion of extend
end;
換句話說,如果Alice刪除和鮑勃修整,我可以告訴誰做哪個集合(除了使企圖指數last+1
插入和捕捉到潛在的ORA-06533錯誤Subscript beyond count
)?謝謝!
感謝完整的答案。我有點期待它。遺憾的是,這樣的信息並不容易獲得(例如'limit'不適用於嵌套表格,它可能會返回內部容量)。 –