oracle获取无效或者最大,Oracle包或函数处于无效状态

尝试创建基于pl/sql游标的函数以从Oracle数据库返回详细信息。Oracle包或函数处于无效状态

相关表格,MEETING,有列 MEETING_ID:数(10),TIME:时间戳(4),TITLE:VARCHAR(20)

CREATE OR REPLACE FUNCTION GetMeeting

(meetingnumber MEETING.MEETING_ID%TYPE)

RETURN VARCHAR

IS

CURSOR current_meeting(meetingnumber MEETING.MEETING_ID%TYPE)

IS

SELECT TITLE, TIME

FROM MEETING

WHERE MEETING_ID = meetingnumber;

r_meeting current_meeting%ROWTYPE;

BEGIN

OPEN current_meeting(meetingnumber);

FETCH current_meeting INTO r_meeting;

IF current_meeting%NOTFOUND THEN

r_meeting.TITLE := 'UNKNOWN APPOINTMENT';

END IF;

CLOSE current_meeting;

RETURN r_meeting.TITLE;

END;

SELECT GetMeeting (27) name

FROM MEETING;

的功能似乎编译正常 - 但是当所谓抛出

ORA-06575:包装或功能GETMEETING处于无效状态

+0

该函数是否说它已成功编译或成功地发出警告?如果后者可以在之后立即执行“显示错误”。你也可以稍后'显示错误函数getmeeting',看看它为什么无效。但是当你可能得到'%notfound'时,你从'r_meeting'返回一个值,这在运行时可能是一个问题?也许更重要的是,将返回值声明为'varchar'而不是'varchar2'可能是个问题,但我不会这么想的。 –

2013-05-12 13:40:36

+0

这似乎没有任何问题。用你的表格定义函数编译并运行OK。你怎么称呼它没有意义,但我认为这是一个考验。更新'r_meeting'值可能不正常,但似乎工作正常。 –

2013-05-12 13:51:47

+0

它只是说:“功能创建”。试图启用显示错误;导致编译器去香蕉“遇到符号”SHOW“” –

2013-05-12 13:52:14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值