ただ、理論的質問:トリムされたPLSQLコレクションの最後の要素を削除してPLSQLコレクションに伝えることはできますか?
ネストした表が原因last
までnext
の間でfirst
からインデックスの順序で穴を創設することによって証明することができ、欠失、スパースになることができます。 しかし、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;
、アリスが削除され、ボブは、トリム、私は(インデックス
last+1
に挿入し、潜在的なORA-06533
Subscript beyond count
エラーをキャッチしようとする試みを行うことを除いて)誰がどのコレクションを作っ伝えることができますか?ありがとう!
徹底的に答えてくれてありがとう。私はそれを期待していた。このような情報は容易に入手できません(例えば、 'limit'はネストしたテーブルには利用されません。内部容量を返すことができます)。 –