– 请看案例6
使用%rowtype属性定义记录型变量 – 使用%type可以使变量获得字段的数据类型,使用 %rowtype可以使变量获得整个记录的数据类型。该属性 可以基于表或视图定义记录变量。为了简化表或视图所 有列数据的处理,应该使用该属性定义记录变量。
存储过程
• 与其它的数据库系统一样,Oracle的存储过程是用PL/SQL语 言编写的能完成一定处理功能的存储在数据库字典中的程序。 – 创建过程语法: CREATE [OR REPLACE] PROCEDURE 过程名 [ (参数名 [ { IN | IN OUT }] 数据类型„.)] { IS | AS } PL/SQL块 请看案例7:创建一个存储过程sp_pro1 ,用于实现向 mytest表中添加数据 先创建一张mytest表create table mytest(id number);
• FOR循环 – 格式: FOR 循环控制变量 IN [ REVERSE ] 下界值..上界 值 LOOP statement1; statement2; END LOOP; – 当使用FOR循环时,每次循环时循环控制变量会自动 增一;如果指定REVERSE选项,那么每次循环时循环控 制变量会自动减一。 – 案例17:将案例15使用for循环实现
• 建立OUT参数的存储过程 – 过程不仅可以用来执行特定操作,而且也可以用于输出 数据,在过程中输出数据是使用OUT参数来完成的,当 定义输出参数时,必须提供OUT关键字。 – 请看下面的案例,利用in和out参数传递的方式调用一 个存储过程 【案例9】创建一个过程,从emp表中带入雇员的姓名, 返回该雇员的薪水值。(out参数,然后调用过程,请 同学们先编写这个过程
DECODE()函数 和case表达式类似,decode()函数也用于实现多路分支结构 select empno, ename, sal, decode(deptno, 10, '财务部', 20, '研发部', 30, '销售部', '未知部门') 部门 from emp;