SELECT al.id FROM adlist al LEFT JOIN adMaterialList aml ON aml.id=al.materialId AND al.putinType=2 LEFT JOIN memberlist ml ON ml.id=al.memberid WHERE al.id IN (SELECT * FROM TABLE(STR2NUMLIST(:id))) AND al.status=-1 AND (al.putinType=1 OR aml.status<>-1) AND ml.status<>-1SELECT * FROM TABLE(STR2NUMLIST(:id))这句话怎么解释 ?
1 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
Table( 函数名称() );
意思是, 把返回结果集合的函数返回的结果, 以表的形式, 进行返回。
下面是一个返回结果集的函数的例子:
-- 定义类型 CREATE OR REPLACE TYPE MyTable AS OBJECT(A int , B int , C int ); / CREATE OR REPLACE TYPE MyTableResult IS TABLE OF MyTable; / CREATE OR REPLACE FUNCTION getTestTable return MyTableResult IS -- 预期返回结果. return_Result MyTableResult := MyTableResult(); BEGIN -- 结果追加一行. return_Result.EXTEND; -- 设置结果内容. return_Result(return_Result. COUNT ) := MyTable(A => 1, B=>2, C=>3); -- 结果追加一行. return_Result.EXTEND; -- 设置结果内容. return_Result(return_Result. COUNT ) := MyTable(A => 4, B=>5, C=>6); -- 结果追加一行. return_Result.EXTEND; -- 设置结果内容. return_Result(return_Result. COUNT ) := MyTable(A => 7, B=>8, C=>9); return return_Result; END getTestTable; / SQL> SELECT 2 A, B, C 3 FROM 4 table ( getTestTable() ); A B C ---------- ---------- ---------- 1 2 3 4 5 6 7 8 9 SQL> |
上面的table( getTestTable() );
就是这样的效果。
添加回答
举报
0/150
提交
取消