在Oracle中,是否可以使用DBLINK调用函数?我是这样调用函数并收到错误提示的 - ORA-00904:"MC"。"GET_REFTYPES":无效标识符。
select column_value from table(mc.Get_REFTYPES@READ_MAIN_MCNAV(param1, param2, param3)));
函数代码
CREATE OR REPLACE FUNCTION "MC"."Get_REFTYPES"(
param1 IN VARCHAR,
param2 IN NUMBER,
param3 IN DATE DEFAULT SYSDATE
)
RETURN RefType_T PIPELINED IS
CURSOR cur_st (
cur_param1 VARCHAR,
cur_param2 NUMBER,
cur_param3 DATE
) IS
select
TypeID
FROM ......
WHERE......... ;
t_st Types_T; -- Table variable to store return values
BEGIN
OPEN cur_st(param1, param2 , param3 );
FETCH cur_st BULK COLLECT INTO t_st;
CLOSE cur_st;
FOR i IN 1..t_st.COUNT LOOP
PIPE ROW(t_st(i));
END LOOP;
RETURN;
END;
谢谢!
from table...
在where、having、group by或select之外,函数在做什么?你期望这个函数返回什么,查询该如何使用它?作为限制条件还是用于显示?另外,我看到了两个开括号((
)和三个闭括号()
)。 - xQbertSD_SchoolType_T
UDT。但这并不能解释你在到达那一点之前遇到的 ORA-00904 错误。 - Alex Poolemc."Get_REFTYPES"@READ_MAIN_MCNAV()
能够工作吗? - Alex Poole