我有一个以Numbers表作为输入的函数:
function foo(ids in custom_array)...
其中custom_array
是数字表。
如果我只需要传递1个参数,如何从SQL查询中调用此函数?
我认为这应该是这样的
select * from table(foo(123))
但我猜错了。
修改 函数的声明如下:
create or replace function foo(id in custom_array) return
tableof2numbers AS
mytable tableof2numbers;
BEGIN
SELECT cast(
MULTISET (
/*there goes some super secret business logic*/
/*let's say that here we just do smth like this: */
select 123, 123 from dual
/*because this is not so important for this question*/
)
AS tableof2numbers)
INTO
mytable
FROM dual;
RETURN mytable;
其中tableof2numbers
是另一种自定义类型,其声明与custom_array
非常相似,但有2个数字。
提前致谢!!!
答案 0 :(得分:0)
我的例子:
1)TYPE
create or replace TYPE "TABLE_OF_NUMBER"
AS TABLE OF NUMBER
2)功能
CREATE OR REPLACE FUNCTION foo(
par IN table_of_number)
RETURN NUMBER
IS
BEGIN
RETURN par(1);
END;
3)选择
SELECT foo(table_of_number(123)) FROM dual
如果你的函数返回表,它将类似于
SELECT * FROM TABLE (foo(custom_array(123)))
希望它会有所帮助。