本人正在自学oracle10g,请教各位:
1 create or replace procedure add_employee(eno number,
2 name varchar2,sal number,job varchar2 default 'CLERK',
3 dno number)
4 is
5 e_integrity exception;
6 pragma exception_init(e_integrity,-2291);
7 begin
8 insert into emp(empno,ename,sal,job,deptno) values
9 (eno,name,sal,job,dno);
10 exception
11 when dup_val_on_index then
12 raise_application_error(-20000,'雇员号不能重复');
13 when e_integrity then
14 raise_application_error(-20001,'部门号不存在');
15 end;
16/
第2行的job varchar2 default 'CLERK'和第6行的pragma exception_init(e_integrity,-2291);是什么意思?
另:开发过程是输入参数IN和输出参数OUT又说明区别呢?该怎么用?
create or replace procedure query_employee
(eno number,name out varchar2,salary out number)
is
begin
select ename,sal into name,salary from emp where empno=eno;
exception
when no_data_found then
raise_application_error(-20000,'该雇员不存在');
end;
/
当调用这个过程的时候为什么还要现执行var name varchar2(10),
var salary number?
谢谢……
|