作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以在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;
谢谢!
最佳答案
函数声明为 a quoted identifier :
CREATE OR REPLACE FUNCTION "MC"."Get_REFTYPES"(
您将其称为不带引号的,如 mc.Get_REFTYPES@READ_MAIN_MCNAV(...)
。引用标识符引起的烦恼之一是你总是必须用引号引用它们并且与原始定义完全相同,所以你需要做:
select column_value
from table(mc."Get_REFTYPES"@READ_MAIN_MCNAV(param1, param2, param3)));
您不需要引用 mc
,因为带引号的大写标识符在任何情况下都像不带引号的一样。
但是,即使进行了更正,这也不会如您所愿。正如所讨论的in this answer您不能调用返回用户定义类型的函数,例如 RefType_T
,并且会得到“ORA-30626:不支持远程对象类型的函数/过程参数”。
关于oracle11g - 如何在oracle中使用dblink调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35875482/
我是一名优秀的程序员,十分优秀!