在我的Pl / SQL过程中,我有一个请求选择PL / SQL对象并将它们批量收集到表中。
以下是对象和表类型的声明:
CREATE OR REPLACE TYPE TypPerson AS OBJECT(
NoSeq NUMBER(9),
Name VARCHAR2(50),
Age NUMBER(22),
constructor function TypPerson return self as RESULT
);
CREATE OR REPLACE TYPE TypTblPerson as table of TypPerson;
以下是我的程序中的陈述
req := 'SELECT TypPerson(a.num, a.name, b.age)
FROM tab1 a inner join tab2 b ON condition';
EXECUTE IMMEDIATE req BULK COLLECT INTO tblPersons;
此代码工作正常,但我想按字段(TypPerson)名称对结果进行排序,我不知道该怎么做。
如果我试试这个
req := 'SELECT TypPerson(a.num, a.name, b.age)
FROM tab1 a inner join tab2 b ON condition
ORDER BY NoSeq';
我收到错误 ORA-00904 invalid identifier
。
所以我想知道我该怎么做。我的过程接收要订购的字段的名称作为输入参数。
可能更容易对请求产生的tblPersons
进行排序?在这种情况下我该怎么办?
谢谢