2013-11-27 35 views
0

被宣告错误我想在函数返回一个数组作为我的函数看起来像下面,数组必须在PL SQL

CREATE OR REPLACE FUNCTION TEST 
RETURN t_array 

IS 
strings t_array; 

BEGIN 
--do something 
RETURN strings; 
END: 

但是它给出了一个错误t_array必须申报。我想知道在哪里申报,我该如何申报?

回答

2

当您使用自定义类型时,您必须首先声明该类型。例如:

CREATE OR REPLACE TYPE string_array IS TABLE OF varchar2(50); 

它创建一个名为string_array的新类型,它是一个varchars表。
欲了解更多信息,请查看官方的oracle dokumentation here

+0

你也可以在一个包中声明数组,但它必须定义在某个方法的参数列表中。 –

+0

如果我想将它作为一个常用函数,而不是将它放入一个包中,那么我该如何声明它? – Harshana

+0

正如你所希望的自定义​​类型作为返回类型,据我所知,它必须在你的函数之外声明。所以,只要声明类型,就像你声明一个新的表或函数一样。在SQL Developer中,只需在SQL Worksheet上执行它。 – Armunin