创建程序包,在程序包中定义一个过程用作添加员工,再定义一个函数用作根据员工编号判断员工是否存在。(要求:在用户执行添加操作之前,先调用函数判断该员工是否存在,如果不存在,则插入并提交数据;否则提示该员工已存在)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块中调用。。该段代码如果调用呢。。
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块中调用。。该段代码如果调用呢。。
解决方案 »
- sql中查询条件将zt=1改为zt=6查询速度变慢
- ORACLE 10g中“ORA-12541:TNS:无监听程序”
- SQL*LOADER的问题!急~~~~~~~~~~
- 关于Oracle BLOB类型,一个String字符怎么写入BLOB字段?
- 求这样的函数,输入一个id字符串如10,20,30,得到该id对应的名字如小虎,小张,小王,
- RedHat AS 4 安装oracle9i的时候,执行Disk1下的runInstaller后提示正在初始化虚拟机,请等待后就再无反应
- 为什么10g文件比9i小?
- sqlldr导入的表为什么在oem中看不到呢?在线等待,我已经重启了一遍
- 小弟Kangta刚学Oracle,请前辈们推荐本自学的好书!
- 以前提过但没解决的问题,急!
- ORACLE 9.2.0.8升级至11G
- sql语句问题
先定义一个变量var1 integer;
select IsHaveEmp(eno) into var1 from dual;
if var1>0 then
-------