如何轻松引用关联数组的索引类型?

Jag*_*ger 2 oracle plsql

是否有一种简单的方法可以在声明表示其键的变量时引用PLSQL中关联数组的索引类型?

我正在寻找类似于下面的语言结构.

DECLARE
  i number;
  j i%type;
BEGIN
  null;
END;
Run Code Online (Sandbox Code Playgroud)

我希望能够做那样的事情.

DECLARE
  type ty_my_type is table of number index by varchar2(4);
  my_array ty_my_type;
  -- key my_array.key%type;
  -- or
  -- key my_array%keytype;
BEGIN
  null;
END;
Run Code Online (Sandbox Code Playgroud)

MT0*_*MT0 5

您可以声明SUBTYPE并使用:

DECLARE
  SUBTYPE KEY_TYPE IS VARCHAR2(4);
  TYPE ASSOC_ARRAY_TYPE IS TABLE OF NUMBER INDEX BY KEY_TYPE;

  my_array ASSOC_ARRAY_TYPE;
  my_key   KEY_TYPE;
BEGIN
  NULL;
END;
/
Run Code Online (Sandbox Code Playgroud)