如何订购选定的对象

时间:2016-10-24 21:15:32

标签: sorting object plsql

在我的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进行排序?在这种情况下我该怎么办?

谢谢

0 个答案:

没有答案