为了账号安全,请及时绑定邮箱和手机立即绑定

如下关于table代码所示,请问该怎么解释 ?

如下关于table代码所示,请问该怎么解释 ?

慕姐4208626 2022-04-07 16:07:22
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 MyTableResultIS  -- 预期返回结果.  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() );

就是这样的效果。


查看完整回答
反对 回复 2022-04-11
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信