1

ネストしたテーブルにデータを入力して返す PLSQL 関数があります。

select distinct id bulk collect into my_nested_table
from user
order by id;
return my_nested_table;

ドキュメントによると、ネストされたテーブルはマルチセットであり、固有の順序はありません。

それにもかかわらず、上記の関数から返されたネストされたテーブルが id によって並べ替えられ (selectステートメントが示すように)、DB に格納しない限りその順序を保持すると仮定できますか?

ドキュメントへのリンクを提供することはプラスです。:)

4

2 に答える 2

4

まず最初に知っておくべきことは、NESTED TABLE

オラクルのドキュメントによると

データベース内では、ネストされたテーブルは1 列のデータベース テーブルと見なすことができます。Oracle は、ネストした表の行を特定の順序で格納しません。ただし、ネストした表を取得して PL/SQL 変数に入れると、行には 1 から始まる連続した添え字が与えられます。これにより、個々の行への配列のようなアクセスが可能になります。

これは の動作を持つ1 列のテーブルarrayですが、制限はありません (サイズは動的に増加する可能性があります)。さらに、最初NESTED TABLEは本質的に密ですが、後で疎になりました(要素を削除すると)。

ここに画像の説明を入力

于 2015-06-17T08:13:47.057 に答える