Oracle——存储过程
1.语法格式:
create [or replace] procedure name [(parameter,...)] as|is (local declarations) begin statement; end name;
2.创建过程p_dept,输出各部门名称
SQL> create or replace procedure p_dept 2 as 3 cursor cur_dept is 4 select dname from dept; 5 begin 6 for v_dept in cur_dept loop 7 dbms_output.put_line('部门名称:'||v_dept.dname); 8 end loop; 9 end p_dept; 10 /
3.查看编译错误
show error;
4.查看某一行代码
L start_line_number
5.执行过程
方法一: exec p_dept; 方法二: SQL> begin 2 p_dept; 3 end; 4 /
6.对表结构更改后,涉及的存储过程会失效,这时候需要重新编译
alter procedure procedure_name compile;
7.例题:
SQL> create or replace procedure query_emp 2 (v_empno emp.empno%type,v_sal out emp.sal%type,v_deptno out emp.deptno%type) 3 as 4 begin 5 select sal,deptno into v_sal,v_deptno from emp where empno=v_empno; 6 dbms_output.put_line('员工编号:'||v_empno||',工资:'||v_sal||',部门编号:'||v_deptno); 7 exception 8 when no_data_found then 9 dbms_output.put_line('没有编号为'||v_empno||'的员工信息'); 10 end query_emp; 11 / 过程已创建。
注:select只能有一个into