如何在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))