关于包,请高手进来

SQL>createorreplacepackagestudent_package2as3g_curidvarchar2(15);4g_c_ratenumber:=1.5... SQL> create or replace package student_package
2 as
3 g_curid varchar2(15);
4 g_c_rate number:=1.5;
5 type studentresult_array is table of t_result%rowtype --我修改了这里才使程序包得以成功创建,原为type studentresult_array t_result.result%type
6 index by binary_integer;
7 procedure ins_result
8 (p_stuid in t_result.stuid%type,p_curid in t_result.curid%type);
9 procedure delete_result
10 (p_stuid in t_result.stuid%type,p_curid in t_result.curid%type);
11 function get_student
12 (p_stuid t_student.stuid%type)
13 return t_student%rowtype;
14 e_illegalvalue exception;
15 e_illegalresult exception;
16 end student_package;
17 /

程序包已创建。

SQL> create or replace package body student_package
2 procedure ins_result
3 (p_stuid in t_result.stuid%type,p_curid in t_result.curid%type)
4 as
5 v_result integer;
6 begin
7 select result into v_result
8 from t_result
9 where stuid=p_stuid
10 and curid=p_curid;
11 if v_result>100 or v_result<0 then
12 raise e_illegalvalue;
13 else
14 insert into t_newresult
15 values(p_stuid,p_curid,v_result);
16 end if;
17 exception
18 when no_data_found then
19 dbms_output.put_line('查询的数据不存在');
20 insert into t_log
21 values('stuid is not exsit!',sysdate,'admin');
22 when e_illegalvalue then
23 dbms_output.put_line('查询成绩不合法(大于100或者小于0)');
24 insert into t_log
25 values('result is illegal!',sysdate,'admin');
26 end ins_result;
27
28 procedure delete_result
29 (p_stuid in t_result.stuid%type,p_curid in t_result.curid%type)
30 as
31 begin
32 delete from t_result
33 where stuid=p_stuid
34 and curid=p_curid;
35 if sql%notfound then
36 raise e_illegalresult;
37 end if;
38 exception
39 when no_data_found then
40 dbms_output.put_line('查询的数据不存在');
41 insert into t_log
42 values('stuid is not exsit!',sysdate,'admin');
43 when e_illegalresult then
44 dbms_output.put_line('查询成绩不合法(大于100或者小于0)');
45 insert into t_log
46 values('result is illegal!',sysdate,'admin');
47 end delete_result;
48
49 function get_student
50 (p_stuid t_student.stuid%type)
51 return t_student%rowtype
52 as
53 student_record t_student%rowtype;
54 begin
55 select stuid,stuname,age,sex,birth into student_record
56 from t_student
57 where stuid=p_stuid;
58 return student_record;
59 when no_data_found then
60 dbms_output.put_line('查询的数据不存在');
61 insert into t_log
62 values('stuid is not exsit!',sysdate,'admin');
63 end get_student;
64 end student_package;
65 /

警告: 创建的包体带有编译错误。 --到底是包体在哪里错了???
回复awaly0007,我用的是Oracle11gR2
展开
 我来答
awaly0007
2010-12-09 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:74.8万
展开全部
这个只是警告。。。你的包体是没有错的。。。

小小建议给你,用英文版的软件吧。中文常常翻译不好,让人误解啊。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式