[英]How can I define a parameterless constructor in an Oracle PL/SQL type?
[英]How to define a dictionary like structure in Oracle PL SQL?
如何在 PL/SQL 中定义以下结构:
包含多行的字符串列表。
例子:
'User A'
-->
(1)
-->
1
(2)
-->
2
'User B'
-->
(1)
-->
0
(2)
-->
9
整数定义为:
TYPE number_arry IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
如何定义整个结构?
我想从这个表中填充这个结构:
RowId | User_A | User_B
------+--------+--------
1 | 1 | 0
2 | 2 | 0
3 | 3 | 9
有了这些陈述:
CURSOR c1
IS
SELECT User_A, User_B FROM my_table;
OPEN c1;
LOOP
FETCH c1
BULK COLLECT INTO
my_dict('User A'),
my_dict('User B')
LIMIT 1000;
EXIT WHEN c1%NOTFOUND;
END LOOP;
您可以使用以下结构:
SQL> CREATE TABLE my_table AS
2 SELECT 1 user_a, 0 user_b FROM dual
3 UNION ALL SELECT 2, 0 FROM dual
4 UNION ALL SELECT 3, 9 FROM dual;
Table created
SQL> DECLARE
2 CURSOR c1 IS
3 SELECT User_A, User_B FROM my_table;
4 TYPE number_arry IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
5 TYPE dictionary_type IS TABLE OF number_arry INDEX BY VARCHAR2(30);
6 l_dico dictionary_type;
7 BEGIN
8 OPEN c1;
9 LOOP
10 FETCH c1 BULK COLLECT
11 INTO l_dico('User A'), l_dico('User B') LIMIT 1000;
12 EXIT WHEN c1%NOTFOUND;
13 END LOOP;
14 CLOSE c1;
15 END;
16 /
PL/SQL procedure successfully completed
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.