Oracle存储过程:
语法:
CREATE [OR REPLACE] PROCEDURE procedure_name
(arg1 [mode1] datatype1,arg2 [mode2] datatype2,...)
IS [AS]
PL/SQL BLOCK;
mode用于指定输入输出参数:IN为输入参数,OUT为输出参数,当为输入参数时可以省去IN,OUT不能省去。
如果没有输入输出参数,可以省去
(arg1 [mode1] datatype1,arg2 [mode2] datatype2,...)这一行
一个带有输入,输出参数的简单的例子
调用该过程
显示游标语法:
CURSOR cursor_name IS select_statement
一个简单的例子:
参数化游标只是声明方式和打开游标时有些不同
CURSOR emp_test2(p_deptno emp.deptno%TYPE) IS --声明游标
SELECT ename, job FROM emp WHERE deptno = p_deptno;
OPEN emp_test2(10); --打开游标
游标变量:
定义游标变更类型
TYPE type_name IS REF CURSOR[RETURN return_type];
约束与无约束的游标变量
无约束的游标变量包含特定的返回类型(type,rowtype,record等),查询的选择列表必须匹配游标的返回类型,否则会出现预
定义的ROWTYPE_MISMATCH异常。约束的游标变量没有Return子句。