Oracle————存储过程与函数
存储过程 IN(默认参数模式):表示当存储过程别调用时,实参值被传递给形参;形参起变量作用,只能读该参数,而不能修改该参数。IN模式参数可以是变量或表达式。 create or replace procedure proc_divide (2)在函数的创建过程中没有declare关键字,而是使用is或者as关键字来代替。 (3)函数必须有返回值:return datatype。 (4)一般不在函数中执行 DML(数据操纵语言-插入、删除、更新)操作。 ? 举例:存储过程调用函数 --函数 increaseSalary()create or replace function increaseSalary(theIncome in number) return varchar2 as theMessage varchar2(50); begin if theIncome <=4000 then theMessage := ‘收入太低,工资增加10%‘; elsif theIncome <=8000 then theMessage := ‘收入偏低,工资增加5%‘; elsif theIncome <=20000 then theMessage := ‘收入一般,工资增加2%‘; else theMessage := ‘收入很高,工资增加1%‘; end if; return theMessage; end;--存储过程create or replace procedure getEmpInfo (theId in out employees.employee_id%type,theName out employees.first_name%type,theSalary out employees.salary%type,theMessage out varchar2) isbegin select employee_id,first_name,salary,increaseSalary(salary) into theId,theName,theSalary,theMessage from employees where employee_id = theId; exception when NO_DATA_FOUND then dbms_output.put_line(‘没有该员工信息‘); end; set serveroutput on ;declare theId employees.employee_id%type:=&theId; theName employees.first_name%type; theSalary employees.salary%type; theMessage varchar2(50);begin getEmpInfo(&theId,theMessage);--输入员工id dbms_output.put_line(‘ID为:‘||theId||‘的员工,名字为‘||theName ||‘,收入为‘||theSalary||‘,‘||theMessage); end; ---------------------? (编辑:湘西站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |