我需要你的帮助.....如何将多个值传递给函数中的单个参数?
'AAA 1','BBB 2', 'CCC 3' 'DDD 4' 的值将被传递给相同的参数“v_type”,这些值将根据从前端屏幕下拉菜单中的选择发送. 用户可以从列表中选择一个或多个值,这些值应传递给过程,然后将传递给过程中 SELECT 语句的 WHERE 子句。
我的功能是这样的:
例子
CREATE OR REPLACE FUNCTION FN_GET_ROWS
(v_date_ini IN DATE,
v_date_end IN DATE,
v_type IN VARCHAR2
)
RETURN TEST_TABTYPE
AS
V_Test_Tabtype Test_TabType;
BEGIN
SELECT TEST_OBJ_TYPE(DATE, NAME, ALERT)
BULK COLLECT INTO V_Test_TabType
FROM (select date, name, alert
from Table
where DATE BETWEEN v_date_ini AND v_date_end
AND Alert in (select REGEXP_SUBSTR (v_type, '[^,]+', 1, level)
from dual
connect by level <= length(regexp_replace(v_type,'[^,]*'))+1)
);
RETURN V_Test_TabType;
END;
搜索互联网我发现 Varray 可能有效,但我不知道如何将其分配给变量:type 以及用户在屏幕上选择的参数。
我在数据库上创建了这种类型,我该如何使用它?我是 plsql 的新手。
CREATE TYPE alert_obj AS OBJECT (type_alert VARCHAR2(60));
CREATE TYPE alert_varray_typ AS VARRAY(100) OF alert_obj;
谢谢你的帮助
伊曼纽尔。