将SELECT结果传递给PL / SQL函数,该函数需要嵌套表作为参数

时间:2015-09-25 12:07:12

标签: sql plsql oracle10g

所以我有一个类型:

create or replace TYPE t_text IS TABLE OF VARCHAR2(200)

一个函数,它使用t_text类型作为输入值,但是这个

function(
(SELECT CAST(MULTISET(SELECT column_name FROM table_name) AS T_TEXT)  FROM DUAL)
)

无法正常工作。我之前无法创建集合,因为此功能在视图中使用。有没有解决方法?

编辑:实际上,确切的问题是

select multiple_replace( 
  'text', 
  CAST(MULTISET(SELECT column_name1 FROM table_name) AS T_TEXT), 
  CAST(MULTISET(SELECT column_name2 FROM table_name) AS T_TEXT) 
) A from dual; 

两个集合中的元素与表中的元素顺序不同。因此,结果与使用批量收集创建集合不同,我无法将其用于视图。

2 个答案:

答案 0 :(得分:0)

怎么样:

SELECT function(CAST(MULTISET(SELECT column_name FROM table_name) AS T_TEXT))
FROM DUAL

答案 1 :(得分:0)

好的,它就像

一样简单
{{1}}