- 締切済み
コンポジット型の変数?
PL/SQL参考本を読み始めているのですが 「コンポジット型の変数」というとろこで質問があります。 コレクションを使った変数定義というのを見ているのですが その定義内容について教えてください。 参考本では下記のような定義を行っていました。 DECLARE TYPE hosttable_type IS TABLE OF VARCHAR2(15) INDEX BY VARCHAR2(32); ・・・(1) host_table hosttable_type; ・・・(2) 「コレクションとは一般的なプログラミング用語の配列にあたる」 との解説がありましたが 上記の変数定義でどの部分が配列変数の宣言にあたるのですか? (1)が配列変数の宣言部分で (1)の「INDEX BY VARCHAR2(32)」では添字の長さを指定し 「TYPE hosttable_type IS TABLE OF VARCHAR2(15)」では 実際配列に格納する値の長さを指定してる という意味なのでしょうか??? サイトなどを調べてみてはいるのですが 自分ひとりではどうも解決できなくて。。。 どなたかお力をお貸しください!
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ossan_hiro
- ベストアンサー率66% (88/132)
例の定義は索引付き表といわれるものです。 (1)は型の宣言で「TABLE OF VARCHAR2(15)」は配列の型で 「INDEX BY VARCHAR2(32)」はインデックスの型をあらわします。 (2)は変数を定義しているところです。 アクセスする場合は以下のようになります。 host_table('aaa'):='test aaa'; host_table('bbb'):='test bbb'; dbms_output.put_line(host_table('aaa')); #同じインデックスで代入すると新しい値に入れ替わります。 詳細は「PL/SQLユーザーズ・ガイド及びリファレンス」を 参照してください。
お礼
ありがとうございます。 早速「PL/SQLユーザーズ・ガイド及びリファレンス」の方も 参考にしてみます。 また機会があればぜひ手助けよろしくお願いします!