Oracle 报错Error(3,8): PLS-00201: identifier 'T_REF_CURSOR' must be declared

createorreplacefunctionget_productsreturnt_ref_cursorisv_products_ref_cursort_ref_cur... create or replace
function get_products
return t_ref_cursor is
v_products_ref_cursor t_ref_cursor;
begin
open v_products_ref_cusor for
select value(op)
from object_products op
order by op.id;
return v_products_ref_cursor;
end get_products;
请问这个get_products 函数为什么会有这个报错?
展开
 我来答
zhoudha
生活家

2018-03-21 · 知世故而不世故地生活
知道大有可为答主
回答量:2.4万
采纳率:91%
帮助的人:168万
展开全部
可能是t_ref_cursor没有进行定义吧。像下面这样写试一下,将t_ref_cursor定义一下,看看是否好用。
create or replace function get_products() return t_ref_cursor is
cursor t_ref_cursor is
select op.*
from object_products op
order by op.id;
v_products_ref_cursor t_ref_cursor;
begin
for v_products_ref_cusor in t_ref_cursor;
return v_products_ref_cursor;
end get_products;
更多追问追答
追问

你的这个还是有三处错误,我改了symbol也是报错,我那个的确是没有进行定义,但是我不知道该怎么给他定义,我看建function函数的用法里,按那个写一样有报错,不知道是为什么?

追答
cursor t_ref_cursor is
select op.*
from object_products op
order by op.id;
拿到外面调用处之前,进行定义。然后执行下面的代码。
create or replace function get_products() return t_ref_cursor is
v_products_ref_cursor t_ref_cursor;
begin
open t_ref_cursor;
fetch t_ref_cursor into v_products_ref_cursor;
close t_ref_cursor;
return v_products_ref_cursor;
end get_products;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式