pl-sql中的表转换与cast-multiset

时间:2014-05-20 09:15:38

标签: oracle plsql casting multiset

Table-CASTCAST-Multiset有什么用?

Table-Cast

的示例
SELECT count(1)
INTO   v_Temp
FROM   TABLE(CAST(Pi_Save_Data_List AS Property_data_list))
WHERE  Column_Value LIKE '%Contact';

Cast-Multiset

的示例
SELECT e.last_name,
   CAST(MULTISET(SELECT p.project_name
   FROM projects p 
   WHERE p.employee_id = e.employee_id
   ORDER BY p.project_name)
   AS project_table_typ)
FROM emps_short e;

对代码的性能提升或影响是什么?

1 个答案:

答案 0 :(得分:9)

TABLE()函数将嵌套表类型强制转换为关系结果集。这允许我们在SQL中查询以前填充的集合。

CAST(MULTISET())函数调用将关系结果集转换为集合类型。当插入到定义为嵌套表的列的表中时,这主要是有用的。

很少有网站在其永久数据结构中使用对象关系功能,因此第二种用法非常少见。但是能够在嵌入式SQL语句中使用集合是一种非常酷的技术,并且广泛用于PL / SQL。