我想使用here提出的方法对Oracle PL/SQL集合(关联数组)进行排序。我修改了链接页面的示例,以便使用关联数组,但我想我遇到了一些投射问题。Oracle CAST MULTISET ORA-00902:无效的数据类型
这是我的代码:
DECLARE
TYPE TABLE_TYPE IS TABLE OF NUMBER INDEX BY VARCHAR2(10);
table_in TABLE_TYPE;
table_out TABLE_TYPE;
BEGIN
-- 1. Populating the collection with random numbers between 1 and 50
FOR i IN 1..9 LOOP
SELECT ROUND(DBMS_RANDOM.VALUE(1,50))
INTO table_in('key-'||i)
FROM DUAL;
END LOOP;
-- 2. Trying to order the collection -> throws ORA-00902: invalid datatype
SELECT CAST (MULTISET(
SELECT * FROM TABLE(table_in)
ORDER BY 2
) AS TABLE_TYPE
)
INTO table_out
FROM DUAL;
END;
我在做什么错?
你不能在关联数组上使用'MULTISET'。 –