oracle学习笔记--pl/sql编程(基础)
2015-11-12 21:18
731 查看
一、基础
PL/SQL程序都是以块为基本单位,一个完整的PL/SQL块包括三部分:声明部分(以declare开头)、执行部分(以begin开头)、异常处理部分(以exception开头)。其中执行部分是必须的,其他两个部分可选。声明部分以declare开头,到begin结束,在这部分可以声明PL/SQL块需要的常量、变量、游标等。当然他们的使用范围只限于当前的这个PL/SQL块。
执行部分以begin开头,执行部分是整个PL/SQL块的主体,主要的逻辑控制和运算都在这部分完成。
异常处理部分以exception开头,用于处理程序运行中出现的错误。
例:
declare
a int:=100;
b int:=200;
c number;
begin
c:=(a+b)/(a-b);
dbms_output.put_line(c);
exception
when zero_divide then
dbms_output.put_line('除数不能为零');
end;
代码中声明了三个变量a、b、c,把ab的和与ab差的上赋值给c并输出。
二、注释
注释分为单行注释和多行注释,单行注释以“--”开始,多行注释以“/*”开始,“*/”结束,中间为注释部分。三、数据类型
1、数值类型:number、pls_integer、binary_integer,其中number可以储存整数和浮点数,pls_integer和binary_integer只能用来储存整数。同时,number有很多子类,所谓子类就是和number等价的类型的别名,这些子类主要包括dec、desimal、double、integer、int、numeric、smallint、binary_integer。2、字符类型:varchar2、char、long、nchar、nvarchar2 。varchar2类型和数据库中的varchar2相似,由于储存可变长度字符串;char用于储存固定长度字符串(不指定最大长度的话默认为1字节);long表示一个可变字符串,最大长度是32767,而数据库中的long类型最大可达2G;nchar和nvarchar2的长度要根据各国的字符集来确定。
3、日期类型:日期只有一种类型date,储存空间为7个字节,每个字节分别用来储存:世纪、年、月、日、时、分、秒。
4、布尔类型:学过编程语言的都知道,Boolean类型主要用于程序的逻辑判断,变量值为:true、false和null。
(特殊数据类型)
5、%type:%type可以指定一个变量的类型与表中指定列的类型相同,它通常跟在列名的后面。
declare
ename_1 emp.ename%type;--声明与ename列类型相同的变量
eno emp.empno%type;--声明与empno类型相同的变量
begin
select empno,ename into eno,ename_1 from emp where empno=7369;
dbms_output.put_line(eno||' '||ename_1);
end;
6、record:recode表示的是一组数据类型,使用前需要先用type关键是定义改类型。
declare
type t is record(--定义数据类型
ename_1 emp.ename%type,
eno emp.empno%type);
t1 t;--定义变量
begin
select ename,empno into t1 from emp where empno=7369;
dbms_output.put_line(t1.eno||' '||t1.ename_1);
end;
其实这种类型就相当于java中的一个实体类,里面包含了多个成员变量。
7、%rowtype:这种数据类型相当于就是绑定了数据库表中一行的数据类型,即这一个变量能够储存一行记录。
declare
var_type emp%rowtype;
begin
select * into var_type from emp where empno=7369;
dbms_output.put_line(var_type.empno||' '||var_type.ename);
end;
相关文章推荐
- Oracle 删除表中记录 如何释放表及表空间大小
- linux64 rh7 下安装oracle11g(r2)
- oracle的order by排序中空字符串处理方法
- 深入Mysql,SqlServer,Oracle主键自动增长的设置详解
- CentOS 6.5下安装Oracle 11g
- oracle case when then
- 在oracle中怎么把一张表的数据插入到另一张表中
- oracle备份表
- Toad Oracle 本地/远程数据库导入/导出 数据库备份
- Toad Oracle 本地/远程数据库导入/导出 数据库备份
- oracle中的 where 1=1 和where 1<>1
- Oracle 11gR2 RAC 修改监听器端口号的步骤
- Oracle数据库GLOBAL_NAMES参数的详细研究 (创建DBLINK时有用)
- Oracle 中的service_name,sid的作用和区别
- oracle导数据
- Oracle11完全卸载方法
- OTL获取oracle数据库表格
- ORACLE备份、恢复、常用查询
- Oracle重建控制文件
- ORACLE备份、恢复、常用查询