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

Ply*_*ock 8 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';
Run Code Online (Sandbox Code Playgroud)

例子 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;
Run Code Online (Sandbox Code Playgroud)

性能增益或对代码的影响是什么?

APC*_*APC 10

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

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

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