在PL / sql中,您可以定义索引的关联数组VARCHAR2
(因为我认为10g):
sql> DECLARE
2 TYPE map_varchar IS TABLE OF VARCHAR2(30) INDEX BY VARCHAR2(30);
3 l map_varchar;
4 BEGIN
5 l('A') := 'alpha';
6 l('B') := 'beta';
7 dbms_output.put_line(l('A'));
8 END;
9 /
alpha
在内部,我认为该结构更像是二叉树映射而不是哈希映射。
sql> DECLARE
2 TYPE emp_rec_type IS RECORD (emp_id NUMBER,emp_salary NUMBER);
3 TYPE map_varchar IS TABLE OF emp_rec_type INDEX BY VARCHAR2(30);
4 l_emp emp_rec_type;
5 l_map map_varchar;
6 BEGIN
7 l_emp.emp_id := 1;
8 l_emp.emp_salary := 1000;
9 l_map('A') := l_emp;
10 -- you can also affect record values directly
11 l_map('B').emp_id := 2;
12 l_map('B').emp_salary := 2000;
13 dbms_output.put_line(l_map('A').emp_salary);
14 END;
15 /
1000
PL/sql procedure successfully completed