第3章 PL/SQL基础 笔记
来源:互联网 发布:droid4x mac 编辑:程序博客网 时间:2024/05/22 23:03
第3章 PL/SQL基础--2012-04-19
3.1 PL/SQK块简介
块(block)是PL/SQL的基本程序单元,编写PL/SQL程序实际就是编写PL/SQL块。要完成相对简单的应用功能,可能只需要编写一个PL/SQL块;而如果要实现复杂的应用功能,那么可能需要在一个PL/SQL块中嵌套其他PL/SQL块。
3.1.1 PL/SQL块结构
PL/SQL块由三个部分组成:定义部分、执行部分、例外处理部分。
其中,定义部分用于定义常量、变量、游标、例外、复杂数据类型等;
执行部分用于实现应用模块功能,该部分包含了要执行的PL/SQL语句和SQL语句;
例外处理部分用于处理执行部分可能出现的运行错误。
PL/SQL块的基本结构如下所示:
Declare--定义部分以Declare开始
定义部分---定义常量、变量、游标、例外、复杂数据类型
begin--执行部分以begin开始
执行部分---PL/SQL语句和SQL语句
Exception--例外处理部分以exception开始
例外处理部分---处理运行错误
end ; --PL/SQL块的结束标记
2012-04-23 pl/sql块的3个实例
declare v_ename varchar2(5);
begin
select ename into v_ename from emp where empno=&no;
dbms_output.put_line('雇员名:'||v_ename);
end;
select * from emp;
3.1.2 PL/SQL块分类
PL/SQL块划分为匿名块、命名块、子程序和触发器等四种类型
1.匿名块
匿名块是指没有名称的PL/SQL块,匿名块既可以内嵌到应用程序(Pro*c/c++)中,也可以在交互式环境(SQL*Plus)中直接使用。
declare v_avgsal number(6,2);
begin
select avg(sal) into v_avgsal from emp where deptno=&no;
dbms_output.put_line('平均工资:'||v_avgsal);
end;
2.命名块
命名块是指具有特定名称标识的PL/SQL块,命名块与匿名块非常类似,只不过在PL/SQL块前使用<<>>加以标记
*******2012-04-24
3.子程序
子程序包括过程、函数和包。
(1)过程
过程用于执行特定操作。
当建立过程时,既可以指定输入参数,也可以指定输出参数。
4.触发器
--------------------------------------------------------------------------------------------------------------------------------------
第3 章 PL/SQL基础 记录 2012-5-14 19:51
学习了本章,读者应该完成以下任务:
1.了解PL/SQL块的基本结构以及PL/SQL块的分类;
2.学会在PL/SQL块中定义使用变量;
3.学会在PL/SQL块中编写可执行语句;
4.了解编写PL/SQL代码的指导方针;
5.了解Oracle 10g的新特征--新数据类型Binary_float和Binary_double,以及指定字符串文本的新方法。
3.子程序包括过程、函数和包
(1)过程用于执行特定操作。
(2)函数用于返回特定数据。当建立函数时,在函数头部必须包含Returen子句,而在函数体内必须 要包含return语句返回数据。使用create
function命令建立函数,实例如下:
创建函数
create function heji3(name varchar2)
return number is
salary number(7,2);
begin
select sal*12+nvl(comm,0) into salary from emp
where lower(ename)=lower(name);
end;
/
由于函数有输出参数,使用sql*plus绑定变量存放输出结果;
var income number
call heji3('scott') into :income;
print income
income
------
2400
(3)包用于逻辑组合相关的过程和函数,它由包规范和包体两部分组成。包规范用于定义公用的常量、变量、过程和函数,在SQL*Plus中建立包规范可以使用create package 命令。
SQL> create package emp_pkg is
2 procedure update_sal(name varchar2,newsal number);
3 function income(name varchar2) return number;
4 end;
5 /
程序包已创建。
SQL> create package body emp_pkg is
2 procedure update_sal (name varchar2,newsal number)
3 is
4 begin
5 update emp set sal=newsal where lower(ename)=lower(name);
6 end;
7
8 function income(name varchar2) return number
9 is
10 salary number(7,2);
11 begin
12 select sal*12+nvl(comm,0) into salary from emp
13 where lower(ename)=lower(name);
14 end;
15 end;
16 /
程序包体已创建。
- 第3章 PL/SQL基础 笔记
- 第1 章 PL/SQL简介 笔记
- PL/SQL 第4章 使用SQL 笔记
- PL/SQL 第3章的后续
- 第2章 PL/SQL开发工具 笔记
- PL/SQL笔记3
- Oracle学习笔记五:PL/SQL基础
- pl/sql学习笔记之一 语言基础
- PL/SQL学习笔记[1]-基础
- Oracle基础学习笔记(五) (PL/SQL)
- PL/SQL学习笔记[1]-基础
- 第二章 PL/SQL基础
- 第二章 PL/SQL基础
- PL/SQL 第4章 使用SQL
- PL/SQL 学习笔记3
- 《oracle pl/sql programming》 第三章 pl/sql语言基础
- SQL-PL/SQL基础
- PL/SQL 第3章 包 的示例
- android右键没有Run Application
- java ftp上传
- TCP --recv函数相关
- 第十二周作业4
- LFS(2)
- 第3章 PL/SQL基础 笔记
- java设计模式(原型模式)
- java 对象 转换成字节数组发送给服务器,根据服务器返回的字节数组自动组装成java对象。
- 两数组用最少次数查出相同元素
- 梦入IBM之java基础第九天
- CLOSE_WAIT 状态以及应对策略
- debian sourse.list源文件
- 约瑟夫问题
- Entity Framework快速入门--IQueryable与IEnumberable的区别