CREATE TABLE TEMP
(
ID VARCHAR2(20 CHAR)
, TXT CLOB
)
create or replace FUNCTION get_field_keys (field CLOB)
RETURN type_array_of_varchar2
IS
return_value type_array_of_varchar2;
BEGIN
//do some split operations(already done)
//return_value[] = 'a';
//return_value[] = 'b';
//return_value[] = 'c';
//..
return return_value;
END;
这个函数必须有返回值,我们可以做到
select * from TEMP where 'a' = ANY(get_field_keys(TXT))
函数 get_field_keys 的返回值必须是 varchar2 的集合,我试过 varray,但“ANY”无法通过这种方式工作。一定是录音什么的。
最佳答案
由于您的函数似乎返回一个 TABLE
或 VARRAY
类型,您可以在取消嵌套表达式中使用它:
SELECT * FROM temp WHERE 'a' IN (SELECT * FROM TABLE(get_field_keys(TXT))
我不确定这是否也适用于 ANY
量词,但无论您使用 ANY
还是 ,这对您的目标都没有关系在
关于oracle - 如何在oracle中创建函数,我们可以在任何地方使用这个函数的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12890535/