PL/SQLでマップのようなオブジェクト型を記述したい。私が言いたいのは、キーと値のペアのリストです。ここで、値は別のキーと値のペアのリストになります。シンプルかそう思いました。これが2つの簡略化されたものです
CREATE OR REPLACE TYPE TKey AS OBJECT
(
name varchar2(240),
value_text varchar2(2000),
value_map TMap
)
CREATE OR REPLACE TYPE TMap AS TABLE OF TKey
「鶏が先か卵が先か」という問題があるので、それほど単純ではないかもしれません。私が最初にTKeyを入れると、彼はTMapが定義されていないと文句を言うでしょう。私が最初にTMapを入れると、彼はTKeyが定義されていないと文句を言うでしょう。TKeyを入れてvalue_map行を省略し、TMapタイプを追加してから、TKeyタイプを置き換えようとすると、彼はそれを許可しません。
私は運が悪いですか?そのような構成はPL/SQLでは不可能ですか?
前もって感謝します
明確化:私が欲しいのは、これを私に与えることができる何かです:キーa、b、およびcを含むマップ。aの値はvarchar"hello"、bの値はvarchar "world"、cの値は別のマップで、キーはxとyで、xの値は"what's"と値です。 yが「上」になっている。
これは、Javaでは次のようになります。
Map<String, Object> map = new HashMap<String, Object>();
map.set("a", "Hello");
map.set("b", "World");
Map<String, Object> child = new HashMap<String, Object>();
child.set("x", "What's");
child.set("y", "up");
map.set("c", child);
今では、何でも保存できる「オブジェクト」のようなものは不可能であることがわかりました。必要なのは、このオブジェクトと同じタイプのオブジェクトのリストを格納できるオブジェクトです。つまり、基本的には木です。