我想从oracle函数返回一个varray,但是我不知道怎么做。到目前为止,这是我尝试过的。
set serveroutput on;
declare
type array_t is varray(2) of number;
CREATE OR REPLACE FUNCTION func() return array_t
begin
array array_t :=array_t(0,0);
array(1):=3;
array(2):=20;
return array;
end;发布于 2016-10-07 18:02:23
hier是您的函数的正确语法
create type array_t is varray(2) of number;
/
CREATE OR REPLACE FUNCTION func return array_t
IS
v_array array_t;
begin
v_array :=array_t(0,0);
v_array(1):=3;
v_array(2):=20;
return v_array;
end;
/例如,您可以在匿名plsql块中调用该函数
declare
v_func_result array_t;
begin
v_func_result := func();
dbms_output.put_line(v_func_result(1));
dbms_output.put_line(v_func_result(2));
end;
/发布于 2016-10-07 18:34:46
不需要在SQL作用域中声明过程;可以将其声明为nested sub-program in an anonymous PL/SQL block。
SET SERVEROUTPUT ON;
DECLARE
TYPE array_t IS VARRAY(2) OF NUMBER;
data array_t;
FUNCTION func RETURN array_t IS BEGIN RETURN array_t( 3, 20 ); END func;
BEGIN
data := func();
DBMS_OUTPUT.PUT_LINE( '(' || data(1) || ', ' || data(2) || ')' );
END;
/https://stackoverflow.com/questions/39914402
复制相似问题