如何在oracle中创建函数,该函数的结果可以在任何应用程序中使用
这个函数必须返回值,我们可以这样做如何在oracle中创建函数,该函数的结果可以在任何应用程序中使用,oracle,Oracle,这个函数必须返回值,我们可以这样做 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(alre
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;
函数get_field_keys的返回值必须设置为varchar2,我尝试了varray,但“ANY”不能用这种方式工作。它必须是record或其他内容。由于您的函数似乎要返回
表
或VARRAY
类型,因此可以在不需要测试的表达式中使用它:
select * from TEMP where 'a' = ANY(get_field_keys(TXT))
我不确定这是否也适用于
ANY
量词,但这与您的目标无关,无论您是在ANY
中使用,还是在中使用:在您的示例中,varchar2的类型是什么。。。
SELECT * FROM temp WHERE 'a' IN (SELECT * FROM TABLE(get_field_keys(TXT))