Oracle Database 10gでは、パッケージまたはプロシージャの外部で連想配列型を作成できますか?私はこの結合配列型を別の型で参照できるようにこれを行うことができるようにしたいと思います。たとえば:パッケージ/プロシージャの外部でOracle結合配列型を作成することはできますか?
create type my_type_map is table of varchar2(10) index by varchar2(10);
create type my_other_type as object (
id number(15),
member procedure initialize(p_my_type_map my_type_map)
) not instantiable not final;
私が手にエラーがある:
index by varchar2(10)
をPL/SQLであるとの創造にそれを許可doens'tする:
SQL> create type my_type_map is table of varchar2(20) index by varchar2(10);
2/
Warning: Type created with compilation errors.
SQL> show errors;
Errors for TYPE MY_TYPE_MAP:
LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 PL/SQL: Compilation unit analysis terminated
1/21 PLS-00355: use of pl/sql table not allowed in this context
SQL>
は、Oracleが考えていることを思えSQL型。オラクルが実際に連想配列をパッケージ外で定義することを許可していない場合は、良い選択肢がありますか?すべての型が同じパッケージに定義されるように、パッケージ内でOracleのオブジェクトを拡張する型を作成できますか?
おかげで、 ジェフ
編集:修正されたコードサンプルは、ログを追加し、問題として可能な代替を追加しました。
エラーはいつ発生しますか?私は、上記の両方のタイプをoracle、10gR2からの苦情なしで作成しました。あなたの例は、pls_integerではなく、INDEX BY VARCHAR2と言う... – DCookie
詳細と修正を追加しました。ありがとう! – jlpp