关于Oracle数据库,程序包的问题。。

qq3553174 2010-08-18 07:29:11
创建程序包,在程序包中定义一个过程用作添加员工,再定义一个函数用作根据员工编号判断员工是否存在。(要求:在用户执行添加操作之前,先调用函数判断该员工是否存在,如果不存在,则插入并提交数据;否则提示该员工已存在)

create or replace package mypack
is
procedure PrintName(eno number);
function IsHaveEmp(eno number) return number;
end;

create or replace package body mypack
is
procedure PrintName(eno number)
is
myname varchar2(20);
begin
if IsHaveEmp(eno)>0 then
select ename into myname from emp where empno=eno;
dbms_output.put_line(myname);
else
dbms_output.put_line('不存在该员工');
end if;
end;

function IsHaveEmp(eno number)
return boolean
is
counter number;
begin
select count(*) into counter from emp where empno=eno;
return counter;
end;
end;

问题是在PLSQL块中是不能调用函数的。。

但是过程又必须在PLSQL块中调用。。

该段代码如果调用呢。。
...全文
422 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈字文 2012-09-19
  • 打赏
  • 举报
回复
.... 这个
boyucn 2012-09-19
  • 打赏
  • 举报
回复
在过程中调用函数:
先定义一个变量

var1 integer;
select IsHaveEmp(eno) into var1 from dual;
if var1>0 then
-------
TomcatA 2012-09-16
  • 打赏
  • 举报
回复
请问解决了吗? 我也正在想这个问题呢? 求高手啊
qq3553174 2010-08-18
  • 打赏
  • 举报
回复
不能沉呀。。
qq3553174 2010-08-18
  • 打赏
  • 举报
回复
高手在哪里呀。。在线等呀。。
qq3553174 2010-08-18
  • 打赏
  • 举报
回复
纠结呀。oracle 真恶心。创建的时候又不报错。。

用的时候才说有错误。。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧